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

MySQL 5.7.14 遠程連接常見故障排查與解決方案

     編輯:MySQL 資料庫相關知識

現象描述

使用 Navicat Premium 等客戶端連接遠程 MySQL 5.7.14 時,提示「Can't connect to MySQL server on 'host' (10060)」或類似超時錯誤,且無具體 SQL 錯誤碼返回。

核心排查清單

  1. 服務端口未開放
    服務器防火牆(Windows Defender / iptables / 安全組)未放行 3306 端口。
    驗證:telnet <server_ip> 3306 或 nc -zv <server_ip> 3306。
  2. 客戶端 IP 未授權
    MySQL 用戶僅允許 localhost 或特定 IP 登入。
    解決:
    CREATE USER 'app'@'%' IDENTIFIED BY 'strong_pwd';
    GRANT ALL PRIVILEGES ON db_name.* TO 'app'@'%';
    FLUSH PRIVILEGES;
    或修改現有用戶:RENAME USER 'app'@'localhost' TO 'app'@'%';
  3. 本地網絡故障
    VPN 斷開、路由錯誤、交換機 ACL 阻斷等。建議同網段機器互 Ping、抓包分析。
  4. MySQL 配置綁定地址
    my.cnf / my.ini 中 bind-address = 127.0.0.1 導致僅監聽回環。
    修正:註釋該行或改為 0.0.0.0 後重啟服務。
  5. SSL/TLS 強制模式不匹配
    5.7 預設啟用 SSL,客戶端若未配置憑證可能拒絕連接。
    臨時關閉:require_secure_transport = OFF(不推薦生產環境)。

實戰案例復盤

作者環境屬於「IP 未授權」:更換出口 IP 後即可連接。排查步驟:

  1. 確認服務正常、端口通達。
  2. 登入服務器執行 SELECT user, host FROM mysql.user; 發現無 % 主機用戶。
  3. 補充授權後即時生效,無需重啟。

最佳實踐建議

  • 生產環境採用「最小權限原則」:按業務拆分用戶、限定具體 IP 段。
  • 啟用 SSL 加密傳輸,配置 require_secure_transport = ON。
  • 部署跳板機/堡壘機統一入口,禁用公網直連 3306。
  • 配置慢查詢、審計日志,定期審計權限變更。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved