当尝试连接 MySQL 数据库时,若出现“服务器名无效”(Invalid Server Name/Hostname)的报错,通常意味着客户端无法正确识别或访问指定的 MySQL 服务器地址,此问题可能由多种原因导致,以下是详细的排查步骤与解决方案。
localhost
)但未正确配置网络。3306
)。域名无法解析为正确的 IP 地址。
检查输入的服务器名
168.1.100
或 mysql.example.com
)。0.0.1
或 localhost
。使用 ping
命令测试连通性
ping [服务器IP或域名]
确认 MySQL 正在运行
systemctl status mysql
systemctl start mysql
检查 MySQL 绑定地址
my.cnf
(默认路径:/etc/mysql/my.cnf
)。 bind-address
是否为 0.0.0
(允许所有 IP 访问)或指定的服务器 IP。 systemctl restart mysql
telnet
测试 MySQL 端口: telnet [服务器IP] 3306
firewalld
为例): firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload
使用 IP 地址代替域名
直接通过服务器的 IP 地址连接,排除域名解析故障。
修改本地 Hosts 文件(临时方案)
hosts
文件(路径:C:WindowsSystem32driversetchosts
或 /etc/hosts
)。 [服务器IP] [域名]
SELECT host, user FROM mysql.user;
localhost
,需授权远程访问: GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码'; FLUSH PRIVILEGES;
/var/log/mysql/error.log
)快速定位问题。Q1:为何本地能连接,远程却提示“服务器名无效”?
0.0.1
,需修改 bind-address
为服务器公网 IP 或 0.0.0
。Q2:已开放端口,仍无法连接怎么办?
setenforce 0 # 临时关闭 SELinux(仅限测试)
本文参考了以下权威资源:
提示:若问题仍未解决,建议联系专业运维人员或通过社区论坛(如 Stack Overflow)提交详细日志以获取帮助。