解决mysql服务器3306端口不能远程连接 您所在的位置:网站首页 服务器外网不能访问的原因 解决mysql服务器3306端口不能远程连接

解决mysql服务器3306端口不能远程连接

2023-12-18 04:56| 来源: 网络整理| 查看: 265

问题:本机可以通过3306端口连接mysql服务器,但远程不行。1、网络检测

1)ping主机可以; 2)telnet 主机3306端口不可以; telnet 主机22端口可以; 说明与本机网络没有关系;

2、端口检测

1)netstat -ntpl |grep 3306 tcp 0 0 :::3306 :::* LISTEN - 2)netstat -ntpl |grep 22 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - 可以看出22端口监听所有地址,而3306只监听本机地址(绑定了到了本地),所以远程无法访问。 对于端口只允许本机访问,有两个地方启用,一个是防火墙启用3306,一个就是mysql配置绑定本机地址。

参考:http://blog.csdn.net/fjssharpsword/article/details/50973283

3、防火墙检测

1)iptables --list查看; 2)开启防火墙3306端口 vi /etc/sysconfig/iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙) /etc/init.d/iptables restart(重启防火墙使配置生效) 3)或者直接关闭防火墙;

4、mysql配置文件检查

检查my.cnf的配置,bind-address=addr可以配置绑定ip地址。 不配置或者IP配置为0.0.0.0,表示监听所有客户端连接。 #ps -aux | grep mysql 查看进程ID是3340 #ll /proc/3340 查看进程程序情况,找配置文件或者#which mysql 找程序路径

5、mysql用户访问权限(大多数是链接不上是这种情况)

进入mysql数据库 $mysql -u root -p >use mysql; 1.>select host,user from user; //查看用户 MySQL建用户的时候会指定一个host,默认是127.0.0.1/localhost只能本机访问; 其它机器用这个用户帐号访问会提示没有权限,host改为%,表示允许所有机器访问。 2.设置host为% >update user set host='%' where user = 'root'; %为任意用户都有权限连接,localhost为只能本机连接,配置完host为%这一步就已经能外网访问了 3.授权用户具体权限 >grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; >flush privileges;//刷新权限 4.删除用户 >drop user zhangsan@'%'; 注意: 一定要重启mysql: # systemctl restart mysqld

--本篇文章转自:关于mysql服务器3306端口不能远程连接的解决

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有