使用 Navicat Premium 等客戶端連接遠程 MySQL 5.7.14 時,提示「Can't connect to MySQL server on 'host' (10060)」或類似超時錯誤,且無具體 SQL 錯誤碼返回。
telnet <server_ip> 3306 或 nc -zv <server_ip> 3306。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'@'%';my.cnf / my.ini 中 bind-address = 127.0.0.1 導致僅監聽回環。0.0.0.0 後重啟服務。require_secure_transport = OFF(不推薦生產環境)。作者環境屬於「IP 未授權」:更換出口 IP 後即可連接。排查步驟:
SELECT user, host FROM mysql.user; 發現無 % 主機用戶。require_secure_transport = ON。