#1042 - Can't get hostname for your address
無論使用 IP 直連還是域名連接,均可能觸發此錯誤。
MySQL 默認啟用 **反向 DNS 解析**:客戶端連接時,服務端會嘗試將客戶端 IP 解析為主機名,用於權限表(mysql.user)的 Host 列匹配。若 DNS 服務器不可用、解析超時或無 PTR 記錄,連接將被拒絕。
my.cnf(Linux)或 my.ini(Windows)[mysqld] 區段末尾添加:skip-name-resolvesystemctl restart mysqld 或 net stop mysql && net start mysqlmysql.user 的 Host 列不再支持主機名,需改用 IP 或 % 通配符/etc/hosts、DNS 服務器正確配置 PTR 記錄GRANT ... TO 'user'@'192.168.1.%'mysql -h 127.0.0.1 -u root -p
# 應可正常連接,無 1042 錯誤
一行配置,徹底解決連接超時與拒絕問題,生產環境強烈建議開啟。