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 |
| 防火牆 3306 | firewall-cmd --list-ports / iptables -L / Windows 防火牆入站規則 | 允許 TCP 3306 |
| SELinux / AppArmor | getenforce / aa-status | Permissive 或已放行 mysqld |
| skip_name_resolve | my.cnf → skip_name_resolve=1 | 避免 DNS 反解超時導致連接慢/失敗 |
| SSL 強制 | REQUIRE SSL 賬號需客戶端攜帶憑證 | 若未配置客戶端憑證,移除 REQUIRE SSL |
app_user@'10.0.%',最小權限 (CRUD)。validate_password 插件強制長度、複雜度、過期輪換。log_bin + audit_log 插件,記錄所有登入與 DDL/DML。授權只是第一步,網路、防火牆、SELinux、SSL 任一環節斷裂都會導致 1130,全鏈路排查才能一勞永逸。