踩坑记录-mysql链接

73 阅读1分钟

虽然这次错误是因为不了解导致的,但是排查思路可以复制,以后遇到相似的问题,可以逐步排除,因此进行记录。

  1. 现象使用命令:
mysql -h your_ip -P3306 -u root  -pyour_password

出现提示: Lost connection to MySQL server at 'reading initial communication packet', system error: 3

根据网上搜索结果: 使用

nc -zv <服务器IP地址> 3306

检查网络问题或防火墙设置问题。发现是通的。

然后检查了 sudo nano /etc/my.cnf 并且添加了

[mysqld]
bind-address = 0.0.0.0

sudo systemctl restart mysqld

并且给root 用户添加了权限:

SELECT Host, User FROM mysql.user WHERE User='root';

-- 确保存在 'root'@'%',否则执行以下命令
CREATE USER 'root'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

确认了服务器的防火墙:

sudo ufw allow 3306
sudo ufw enable

仍然没有效果,再次查询,发现又可能是VPN的原因(其实不是)

关闭VPN后,错误改变: Can't connect to MySQL server on '--:3306' (60)

确认防火墙,发现云服务的防火墙居然有两个,一个是服务器内部的,可以通过自己的命令控制,京东控制台还有一个防火墙,需要访问时,那个防火墙也必须进行配置

其他需要注意的问题是:

  1. 端口号是否被修改