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

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只监听本机地址(绑定了到了本地),所以远程无法访问。修改my.cnf 中bind-address=0.0.0.0

对于端口只允许本机访问,有两个地方启用,一个是防火墙启用3306,一个就是mysql配置绑定本机地址。

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)或者直接关闭防火墙;   参考:http://blog.csdn.net/fjssharpsword/article/details/50973283

centos 7 以后是修改 firewall

systemctl start firewalld # 启动,

systemctl enable firewalld # 开机启动

systemctl stop firewalld # 关闭

systemctl disable firewalld # 取消开机启动

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;

>select host,user from user;

MySQL建用户的时候会指定一个host,默认是127.0.0.1/localhost只能本机访问;

其它机器用这个用户帐号访问会提示没有权限,host改为%,表示允许所有机器访问。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        

Host 'XXX' is not allowed to connect to this MySQL server  遗失对主机的连接。

解决方法:

原因mysql安装没对其他主机授权访问

1.去mysql安装目录C:\java\mysql5.7\bin下打开cmd输入mysql –u root –p,输入root的密码:

2.执行use mysql

3.执行update user set host = ‘%’ where user = ‘root’;

4.关闭mysql后:net stop MYSQL57,重启:net start MYSQL57

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值