linux中MySQL本地可以连接,远程连接不上问题

1.网络或防火墙问题

  • 检查网络直接ping你的远程服务器,ping 182.61.22.107,可以ping通说明网络没问题

  • 看端口号3306是不是被防火墙挡住了,telnet 182.61.22.107 3306

下图这样就是防火墙挡住了3306端口不允许访问

image
配置防火墙,开启3306端口

vi /etc/sysconfig/iptables //防火墙配置 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT //允许3306端口通过
service iptables restart //重启防火墙

配置如下:
image

2.MySQL配置

在你开启防火墙以后发现还是telnet失败,我去,报错如下:

image

这里的原因是因为你的数据库只允许root用户在本地登录,你可以设置允许访问的用户跟地址

(1)进入数据库查看用户表

mysql -u root -p //登录数据库
use mysql //进入mysql数据库
select Host,User from user; //查看可以访问数据库的ip</pre>
结果如下:


image
(2)设置可以访问的ip

update user set host='%' where host='localhost'; //允许所有访问
flush privileges; //刷新生效

当然也可以只允许一些ip访问,或者ip段访问:GRANT ALL PRIVILEGES ON . TO 'root'@'182.61..' IDENTIFIED BY 'password' WITH GRANT OPTION; //允许182.61段在root账号登录

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容