首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 遠程連線失敗?兩大經典解決方案快速修復

     編輯:MySQL 綜合教學

前言

MySQL 遠程連線問題是資料庫管理中最常見的痛點之一。無論是開發環境測試,還是生產環境部署,當應用程式無法從遠端連接資料庫時,通常是權限設定未正確配置所致。本文提供兩種最實用的解決方案,幫你快速恢復連線。

方案一:改表法(直接修改 user 表)

若錯誤提示「Host 'xxx' is not allowed to connect」,表示該帳號的 host 欄位限制為 localhost,需改為 % 允許所有 IP 連線。

操作步驟

  1. 在本機登入 MySQL:mysql -u root -p
  2. 切換到 mysql 系統資料庫:USE mysql;
  3. 更新 root 使用者的 host 欄位:UPDATE user SET host = '%' WHERE user = 'root';
  4. 驗證修改結果:SELECT host, user FROM user;
  5. 重新整理權限:FLUSH PRIVILEGES;

方案二:授權法(使用 GRANT 語句)

這是更標準、更安全的做法,可精確控制使用者權限與來源 IP。

案例 1:允許 myuser 從任意主機連線

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

案例 2:限制特定 IP 連線(如 192.168.1.3)

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;

重要提醒

  • 安全性考量:生產環境建議限制具體 IP,避免使用 % 開放所有來源
  • 防火牆設定:確保伺服器防火牆開放 3306 埠(或自訂埠號)
  • MySQL 設定檔:檢查 my.cnf 中 bind-address 是否設為 0.0.0.0 或註解掉
  • MySQL 8.0+ 注意:語法略有不同,建議使用 CREATE USER 再 GRANT

MySQL 遠程連線設定示意圖

總結

MySQL 遠程連線失敗多半是權限設定問題。改表法適合快速測試,授權法適合生產環境精細控制。配合防火牆與 bind-address 設定,即可完美解決遠程連線難題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved