MySQL 遠程連線問題是資料庫管理中最常見的痛點之一。無論是開發環境測試,還是生產環境部署,當應用程式無法從遠端連接資料庫時,通常是權限設定未正確配置所致。本文提供兩種最實用的解決方案,幫你快速恢復連線。
若錯誤提示「Host 'xxx' is not allowed to connect」,表示該帳號的 host 欄位限制為 localhost,需改為 % 允許所有 IP 連線。
mysql -u root -pUSE mysql;UPDATE user SET host = '%' WHERE user = 'root';SELECT host, user FROM user;FLUSH PRIVILEGES;這是更標準、更安全的做法,可精確控制使用者權限與來源 IP。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.10.40.54' IDENTIFIED BY '123456' WITH GRANT OPTION; FLUSH PRIVILEGES;
% 開放所有來源my.cnf 中 bind-address 是否設為 0.0.0.0 或註解掉CREATE USER 再 GRANT
MySQL 遠程連線失敗多半是權限設定問題。改表法適合快速測試,授權法適合生產環境精細控制。配合防火牆與 bind-address 設定,即可完美解決遠程連線難題。