前段时间,为了测试,想把远程的一台服务器连上自己本地的sql,鼓捣了一天,最后还是失败了,原因在于远程的服务器是需要通过堡垒机跳转的,无法直接连接本地的数据库。
记录一下正常的流程,连接不上的话应该检查哪些步骤。
1.先看在远程服务器上能否ping通本机的IP地址,ping 192.168.1.211,如果不可以就是网络问题
2.检查3306端口是否打开,
netstat -anlp | grep 3306
合起来可以用telnet ip 端口号 方式测试远程主机端口是否打开
没有打开的情况下,需要修改配置文件
具体见下面两条链接
https://blog.csdn.net/kelvin_yin/article/details/81154285
https://blog.csdn.net/fdipzone/article/details/52705507
3.检查用户访问权限
MySQL建用户的时候会指定一个host,默认是127.0.0.1/localhost,那么这个用户就只能本机访问,其它机器用这个用户帐号访问会提示没有权限,host改为%,表示允许所有机器访问。
select host,user,authentication_string,plugin from user;
执行结果如下:
我们看host和user两列,host和user中root对应的值为localhost,即root用户的访问权限为localhost,想把该用户的访问权限设置可远程连接,我们只需要把localhost更改为通配的%就可以了。上面的权限操作语句没有走通,这里就直接使用update语句来更改吧。
update user set host = "%" where user = "root";
修改之后就将root用户的访问权限设置成了可远程访问了。
参考链接
https://blog.csdn.net/qq_28423997/article/details/78361210
https://blog.csdn.net/hbysj/article/details/80819123