mysql -u root -p
USE mysql;
UPDATE user SET host = '%' WHERE user = 'root';
FLUSH PRIVILEGES;
缺點:繞過權限系統,易導致元數據不一致,MySQL 8.0+ 已移除 user.host 直接更新支持。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'strong_password' WITH GRANT OPTION;
-- 僅授予增刪改查權限
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'app_user'@'202.11.10.253' IDENTIFIED BY 'db_pass';
-- 授予所有權限(含建表、索引等)
GRANT ALL PRIVILEGES ON *.* TO 'app_user'@'202.11.10.253' IDENTIFIED BY 'db_pass';
GRANT ALL ON db_name.* TO 'cluster_user'@'192.168.1.%' IDENTIFIED BY 'pass';
FLUSH PRIVILEGES; -- 必須執行,使授權即時生效
root@'localhost' 或 127.0.0.1REQUIRE SSL 強制加密傳輸log_bin + audit_log 記錄所有授權變更| 錯誤現象 | 可能原因 | 解決方法 |
|---|---|---|
| Host 'x.x.x.x' is not allowed to connect | 用戶 host 欄位不匹配 | 檢查 SELECT user, host FROM mysql.user; 增加對應授權 |
| Access denied for user 'root'@'%' | 密碼錯誤或無 GRANT OPTION | 重置密碼、確認 WITH GRANT OPTION |
| SSL connection required | 用戶要求 SSL 但客戶端未配置 | 客戶端加 --ssl-mode=REQUIRED 或用戶改 REQUIRE NONE |
遵循最小權限原則,配合網絡層防護,構建安全可控的 MySQL 遠程訪問體系。