[解决]连不上远程服务器的MySQL数据库, [08S01] Communications link failure. 虚拟机服务器中的mysql等

这个问题浪费了不少时间, 在此记录下, 之前装虚拟机的解决过一次, 但是快照还原了导致又要重新来一遍…

1. 系统防火墙导致无法连接

关闭防火墙

ubantu系统下执行下面命令

ufw stop

2. MySQL全局配置无法远程访问

用数据库连接工具提示[08S01] Communications link failure
无法收到MySQL服务的回复包
这样基本上就是网络的问题, 根本就没有连通

2.1 打开mysqld.cnf文件

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

2.2 找到bind-adress = 127.0.0.1这行

2.3 取消本地限制

bind-adress = 127.0.0.1前加上#
[解决]连不上远程服务器的MySQL数据库, [08S01] Communications link failure. 虚拟机服务器中的mysql等

2.4 重启mysql服务

service mysql restart

2.5 尝试连接

[解决]连不上远程服务器的MySQL数据库, [08S01] Communications link failure. 虚拟机服务器中的mysql等

3. 用户权限无法远程访问

3.1 查询user表

# 登陆数据库后
use mysql;
select host, user from user;

3.2 修改地址权限

将需要远程登陆的用户的host修改成对应的地址
如果不做限制, host 改成通配符%

如:

update user set host = '%' where user = 'root';