首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 遠程連接失敗解決方案:授權表修改與 GRANT 授權兩大法

     編輯:MySQL 資料庫相關知識

現象

ERROR 1130 (HY000): Host '121.42.8.33' is not allowed to connect to this MySQL server

phpMyAdmin (localhost) 正常,客戶端工具遠程失敗。

方法一:改表法(直觀但不推薦生產)

USE mysql;
UPDATE user SET Host = '%' WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;

風險:Root 開放所有 IP,極度不安全。

方法二:GRANT 授權法(標準做法)

允許任意 IP 連接

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

限制特定 IP

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

最佳實踐:建立專用遠程賬號

-- 建立用戶並授權
CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongP@ssw0rd';
GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'%';
FLUSH PRIVILEGES;

-- 生產環境建議限制 IP 段
CREATE USER 'app_user'@'10.0.%.%' IDENTIFIED BY 'StrongP@ssw0rd';
GRANT SELECT,INSERT,UPDATE,DELETE,EXECUTE ON app_db.* TO 'app_user'@'10.0.%.%';

常見誤區與檢查清單

驗證連接

mysql -h 192.168.x.x -u app_user -p -e "SELECT USER(), CURRENT_USER();"
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
項目檢查點
防火牆/安全組3306 埠是否放行客戶端 IP
MySQL 綁定地址bind-address = 0.0.0.0 或具體內網 IP(非 127.0.0.1)
skip-name-resolve建議開啟 skip-name-resolve=1 避免 DNS 解析延遲/失敗
密碼插件8.0 預設 caching_sha2_password,舊驅動需 mysql_native_password
FLUSH PRIVILEGES修改授權表後必須執行(或重啟)