快速開放 Root 或業務帳號遠程連接,對比直接修改 mysql.user 表與標準 GRANT 語法,強調 FLUSH PRIVILEGES 生效機制。
USE mysql; UPDATE user SET host = '%' WHERE user = 'root'; FLUSH PRIVILEGES;
⚠️ 直接修改系統表,繞過權限檢查,易留隱患。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.6' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
%.% 匹配任意主機,192.168.1.% 匹配網段WITH GRANT OPTION 允許該用戶再授權IDENTIFIED BY 5.7+ 可省略(建議分開 CREATE USER + GRANT)FLUSH PRIVILEGES 才生效(8.0+ 自動生效,但保留兼容)GRANT SELECT, INSERT ON db.* TO ...DELETE FROM mysql.user WHERE user='root' AND host='%';REQUIRE SSLSELECT user, host FROM mysql.user WHERE host != 'localhost';| 錯誤 | 原因 | 解決 |
|---|---|---|
| Host 'x' is not allowed to connect | host 欄位不匹配 | 檢查 user 表 host 值、防火牆、skip-name-resolve |
| Access denied for user 'x'@'y' | 密碼錯/權限不足 | 確認密碼、GRANT 權限範圍、FLUSH PRIVILEGES |