首先检查 mysql 服务是否运行,再确认连接地址、端口 、绑定配置、用户权限及 防火墙 设置,逐步排查可解决连接失败问题。

MySQL Server 连接失败是常见问题,通常由网络、配置、权限或服务状态引起。直接检查以下几个关键点,能快速定位并解决问题。
检查 MySQL 服务是否运行
如果 MySQL 服务没有启动,自然无法连接。
- 在 linux 系统中,执行 systemctl status mysql 或 service mysql status 查看服务状态。若未运行,使用 systemctl start mysql 启动。
- 在windows 系统中,打开“服务”管理器(services.msc),查找“MySQL”服务,确认其状态为“正在运行”。如未启动,右键选择“启动”。
确认连接地址和 端口
连接时使用的主机名、IP 地址和端口号必须正确。
- 默认情况下,MySQL 监听 3306 端口。如果修改过端口,需确保客户端使用正确的端口连接。
- 本地连接可使用 127.0.0.1 或 localhost,远程连接则需使用服务器实际 IP。
- 尝试用 telnet IP 地址 端口号 测试端口连通性。例如:telnet 192.168.1.100 3306。如果连接失败,可能是 防火墙 或 MySQL 未监听该端口。
检查 MySQL 绑定地址配置
MySQL 默认可能只绑定到本地回环地址,导致远程无法连接。
- 打开 MySQL配置文件 my.cnf(Linux 通常位于 /etc/mysql/ 或 /etc/my.cnf,windows 在安装目录下)。
- 查找 bind-address 配置项。如果设置为 127.0.0.1,则只能本地连接。改为服务器 IP 或注释掉此行以监听所有地址。
- 修改后重启 MySQL 服务使配置生效。
验证用户权限和密码
即使服务正常,权限不足也会导致连接被拒。
- 登录 MySQL 服务器本地,执行 mysql -u root -p 进入管理界面。
- 检查用户是否存在且允许从当前主机连接:
select host, user FROM mysql.user WHERE user = ‘ 你的用户名 ’;
如果 host 为 localhost,则不能远程访问。可更新为 ‘%’ 表示允许任意主机:
UPDATE mysql.user SET host=’%’ WHERE user=’ 用户名 ’; FLUSH PRIVILEGES; - 确保密码正确。可通过 ALTER USER ‘ 用户名 ’@’%’ IDENTIFIED BY ‘ 新密码 ’; 修改密码。
排查防火墙和安全组限制
- Linux 上使用 ufw 或 iptables 检查规则,确保 3306 端口开放。
例如:sudo ufw allow 3306 - 如果是 云服务 器(如 阿里云 、 腾讯 云、AWS),登录控制台检查安全组规则,添加入方向规则允许 TCP 3306 端口。
基本上就这些。按顺序检查服务状态、网络连通性、配置文件、用户权限和防火墙,大多数连接问题都能解决。关键是逐层排除,不要跳步。