`

(ERROR 2003 (HY000): Can't connect to MySQL server on '168.x.x.x' (10060)

 
阅读更多

转自:远程连接centos7 上的mysql报(ERROR 2003 (HY000): Can't connect to MySQL server on '168.x.x.x' (10060) )

 

1.MySQL端口

  因为上一篇文章我就已经给MySQL新建了一新用户,且赋予了远程连接数据库的所有权限(GRANT ALL PRIVILEGES ON *.* TO 'newuser' @ '%' IDENTIFIED BY 'newpass' WITH GRANT OPTION;

  且错误是 Cant't connect to MySQL.... 而不是1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server ,所以先排除权限问题,先从端口查起。

  shell > netstat -apn 查看所有端口信息,如下图可以看出mysqld服务Listen端口号为3306,当然也可以在MySQL中 mysql > show variables like 'port';



 

 
shell > netstat -apn | grep 3306 查询3306端口占用情况



 
 在网上查到的解决方法最多的就是说,/etc/my.cn配置文件中配置了 bind_address=127.0.0.1

  但当我vim /etc/my.cnf打开配置文件时里面十分干净,没有其他多余设置,后面几条是我后来添加的。



 所以也排除配置文件问题。

  2.防火墙

  确实,我也感觉是防火墙问题,感觉越来越接近了。因为在本机上telnet 168.x.x.x 3306 提示连接失败。(telnet默认是没有的需要进行安装 #yum install telnet 安装源,#yum install telnet-server安装服务)

  CentOS7的默认防火墙为firewall,且默认是不打开的。

  shell > systemctl start firewalld 启动friewall

  shell > systemctl status firewalld 查看firewall启动情况

  shell > firewall-cmd --zone=public --add-port=3306/tcp --permanent 开启3306端口

  然后重启 firewalld  #firewall-cmd --reload

  使用 # firewall-cmd --query-port=3306/tcp 检查3306端口是否已经开启,如果显示yes,则表示防火墙已开启该端口。

  (当然也可以关闭centos7的默认防火墙 #systemctl stop firewalld 和禁用#systemctl mask firewalld。然后使用iptables防火墙,centos7默认是没有安装iptables的,同样#yum install iptables #yum install iptables-services两步进行安装即可。这有一博友的详细iptables安装配置和讲解,我这就直接借用了。https://www.cnblogs.com/anne32184/p/5961806.html)

 

 

  • 大小: 63.5 KB
  • 大小: 32.5 KB
  • 大小: 5.8 KB
  • 大小: 5.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics