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

MySQL 遠程連接報錯 1130 (Host not allowed) 完整解決方案

     編輯:MySQL 資料庫相關知識

錯誤全貌

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

根因

MySQL 用戶賬號綁定 Host 列,預設 root@localhost 僅允許本機連接。遠程 IP 不在允許列表。

三步修復 (驗證可行)

# 1. 登入本機 MySQL
mysql -u root -p

# 2. 授權遠程訪問 (兩種寫法擇一)
-- 方案 A:允許所有 IP (開發/測試)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'YourStrongPwd123!' WITH GRANT OPTION;

-- 方案 B:僅允許特定 IP/網段 (生產推薦)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%' IDENTIFIED BY 'YourStrongPwd123!' WITH GRANT OPTION;

# 3. 刷新權限生效
FLUSH PRIVILEGES;

驗證遠程連接

# 客戶端機器
mysql -h  -u root -p'YourStrongPwd123!' -e "SELECT USER(), CURRENT_USER();"

進階排查清單 (若授權後仍失敗)

檢查項命令/位置預期
服務綁定地址my.cnf / my.ini → bind-address = 0.0.0.0非 127.0.0.1
防火牆 3306firewall-cmd --list-ports / iptables -L / Windows 防火牆入站規則允許 TCP 3306
SELinux / AppArmorgetenforce / aa-statusPermissive 或已放行 mysqld
skip_name_resolvemy.cnf → skip_name_resolve=1避免 DNS 反解超時導致連接慢/失敗
SSL 強制REQUIRE SSL 賬號需客戶端攜帶憑證若未配置客戶端憑證,移除 REQUIRE SSL

安全最佳實踐

  1. 禁用 root 遠程:建立業務專用帳號 app_user@'10.0.%',最小權限 (CRUD)。
  2. 強密碼策略:validate_password 插件強制長度、複雜度、過期輪換。
  3. 網路隔離:資料庫放私有子網,僅應用層安全組放行。
  4. 審計日誌:啟用 log_bin + audit_log 插件,記錄所有登入與 DDL/DML。

授權只是第一步,網路、防火牆、SELinux、SSL 任一環節斷裂都會導致 1130,全鏈路排查才能一勞永逸。

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