如何解决远程连接mysql出现Can’t connect to MySQL server on (111 “Connection refused”)的问题

Posted 星朝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决远程连接mysql出现Can’t connect to MySQL server on (111 “Connection refused”)的问题相关的知识,希望对你有一定的参考价值。

如何解决远程连接mysql出现Can’t connect to MySQL server on (111 “Connection refused”)的问题

开放Mysql的远程连接

在服务器上登录mysql,然后执行以下的命令。

登录mysql:

  1. /usr/local/mysql-5.6/bin/mysql -u root -p

执行赋权的命令:

  1. MySQL> GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘IDENTIFIED BY ‘123456‘ WITH GRANT OPTION;
  1. MySQL> flush privileges;

也可以直接重启mysql。

  1. /usr/local/mysql-5.6/support-files/mysql.server restart

远程连接Mysql

在本地连接mysql,我们可以使用mysql workbench,这是一款英文的mysql的客户端。

连接的时候出现错误:Can‘t connect to MySQL server on Ip地址 (111 "Connection refused")。

检查防火墙

先检查防火墙的3306端口是不是放开了。这台服务器使用的是iptables,打开iptables,配置3306端口。

  1. vi /etc/sysconfig/iptables
  2.  
  3. # Firewall configuration written by system-config-firewall
  4. # Manual customization of this file is not recommended.
  5. *filter
  6. :INPUT ACCEPT [0:0]
  7. :FORWARD ACCEPT [0:0]
  8. :OUTPUT ACCEPT [0:0]
  9. -A INPUT -p tcp -m tcp --dport 10100:10180 -j ACCEPT
  10. -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
  11. -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
  12. -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
  13. -A INPUT -j REJECT reject-with icmp-host-prohibited
  14. -A FORWARD -j REJECT reject-with icmp-host-prohibited
  15. COMMIT

重启防火墙

  1. /etc/init.d/iptables restart

检查my.cnf

在my.cnf的配置文件中,有参数控制它是否运行在网络上。例如查看这个my.cnf。

  1. vi /usr/local/mysql-5.6/my.cnf

如果是老的版本,使用#屏蔽skip-networking,如下。

  1. #skip-networking

如果是新的版本,使用#屏蔽bind-address。

  1. #bind-address = 127.0.0.1

或者指定允许访问的ip

  1. #bind-address = 192.168.1.2

然后重启mysql。

  1. /usr/local/mysql-5.6/support-files/mysql.server restart

这里是用文件的方式来启动mysql,你可以用服务的方式。

叶子在屏蔽#skip-networking后,再远程连接mysql就OK了。

附录iptables防火墙的命令

查询防火墙状态:

  1. [[email protected] ~]# service iptables status

停止防火墙:

  1. [[email protected] ~]# service iptables stop

启动防火墙:

  1. [[email protected] ~]# service iptables start

重启防火墙:

  1. [[email protected] ~]# service iptables restart

永久关闭防火墙:

  1. [[email protected] ~]# chkconfig iptables off

永久关闭后启用:

  1. [[email protected] ~]# chkconfig iptables on

编辑防火墙规则

  1. vi /etc/sysconfig/iptables

重启防火墙的其他方式

  1. /etc/init.d/iptables restart

结束

你学会了吗?

以上是关于如何解决远程连接mysql出现Can’t connect to MySQL server on (111 “Connection refused”)的问题的主要内容,如果未能解决你的问题,请参考以下文章

mariadb远程不能访问,出现Can't connect to MySQL server on '' (10061)

Navicat for Mysql 远程连接数据库 出现 1042-Can't get hostname for your address 错误! 是啥问题。

navicat远程连接mysql,2003 can't connect to mysql server on 10038

navicat远程连接mysql,2003 can't connect to mysql server on 10038

连接mysql数据库时提示2003 can't connect to MySQL server on ip(10060)的解决办法

解决Ubuntu系统下 mysql 远程连接失败的问题 ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xx