问题描述:
 

从一台linux远程连接另一台linux上的MySQL, 出现ERROR 2003 (HY000): Can't connect to MySQL server on 'ip'(111)错误。
 
[mysql@vvmvcs0 ~]$ mysql -hxxx.xxx.xxx.85 -uroot -p
Enter password:  123456  
ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.85' (111)
问题分析:
1.可能网络连接问,远程ping xxx.xxx.xxx.85 ,能ping通,排除此情况
 
[mysql@vvmvcs0 ~]$ ping xxx.xxx.xxx.85 
PING xxx.xxx.xxx.85 (xxx.xxx.xxx.85) 56(84) bytes of data.
64 bytes from xxx.xxx.xxx.85: icmp_seq=1 ttl=63 time=0.230 ms
 
2. 排查可能由于85上my.cnf里配置了skip_networking或者bind_address,只允许本地socket连接
2.1 在[mysqld]下设置skip_networking,
知识说明: 这使用MySQL只能通过本机Socket连接(socket连接也是本地连接的默认方式),放弃对TCP/IP的监听  
当然也不让本地java程序连接MySQL(Connector/J只能通过TCP/IP来连接)。
2.2 可能使用了bind_address=127.0.0.1(当然也可以是其他ip)
[mysqld] 
bind_address=127.0.0.1
请把这行注释掉 #bind_address=127.0.0.1
 
3.排查DNS解析问题,检查是否设置了: skip_name_resolve。 这个情况肯定不可能,因为我用的是ip,不是主机名。
 
[mysqld]
skip_name_resolve
知识说明:这个参数加上后,不支持主机名的连接方式。
 
4. 排查用户和密码问题, 其实用户和密码的错误,不会出现111的,所以排除用户密码问题
ERROR 1045 (28000): Access denied for user 'root'@'XXXX' (using password: YES)
 
5. 排查--port问题,有可能85的MySQL port不是默认3306, 这样我远程连接时,没有指定--port,用的是3306, 而85上没有对3306进行监听。
 netstat -nplt | grep mysql
 tcp  0  0 0.0.0.0:3306 0.0.0.0:*  LISTEN 11107/mysqld 

测试连接:  mysql -u root -p -h xxx.xxx.xxx.85 --port 3306

6.最坑的防火墙:

1.检查防火墙状态 
[root@iZ288zn7gymZ ~]# service iptables  status
Redirecting to /bin/systemctl status  iptables.service
iptables.service - IPv4 firewall with iptables
   Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled)
   Active: active (exited) since Wed 2016-11-02 23:10:51 CST; 14min ago
  Process: 12024 ExecStop=/usr/libexec/iptables/iptables.init stop (code=exited, status=0/SUCCESS)
  Process: 12078 ExecStart=/usr/libexec/iptables/iptables.init start (code=exited, status=0/SUCCESS)
 Main PID: 12078 (code=exited, status=0/SUCCESS)
Nov 02 23:10:51 iZ288zn7gymZ iptables.init[12078]: iptables: Applying firewall rules: [  OK  ]
Nov 02 23:10:51 iZ288zn7gymZ systemd[1]: Started IPv4 firewall with iptables.
正常启动。

查看是否放开mysql端口

[root@iZ288zn7gymZ ~]# iptables -L -n   (或者: iptables --list  )

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:21
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:3306
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:443
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            limit: avg 100/sec burst 100
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            limit: avg 1/sec burst 10
syn-flood  tcp  --  0.0.0.0/0            0.0.0.0/0            tcp flags:0x17/0x02
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

如果没有 3306 加入防火墙规则:

 iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

注意这样只能临时加入防火墙  需要把规则save到   /etc/sysconfig/iptables 文件下

[root@iZ288zn7gymZ ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
或者简单粗暴
直接vim /etc/sysconfig/iptables
增加一行  -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
完成后我的如下:
# Generated by iptables-save v1.4.21 on Thu Jan 28 19:16:55 2016
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1:152]
:syn-flood - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p icmp -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
-A INPUT -p icmp -m limit --limit 1/sec --limit-burst 10 -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j syn-flood
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A syn-flood -p tcp -m limit --limit 3/sec --limit-burst 6 -j RETURN
-A syn-flood -j REJECT --reject-with icmp-port-unreachable
COMMIT
# Completed on Thu Jan 28 19:16:55 2016

然后重启防火墙:

[root@iZ288zn7gymZ ~]# service iptables restart
Redirecting to /bin/systemctl restart  iptables.service

PS. 请保证mysql 进程正常启动的前提下 逐一排查以上几点。
参考: MySQL远程连接ERROR 2003 (HY000):Can't connect to MySQL server on'XXXXX'的问题
mysql权限及密码问题见:http://www.cnblogs.com/wangdaijun/p/5312424.html

ERROR 2003 (HY000): Can't connect to MySQL server on 'ip'(111)的更多相关文章

  1. ERROR 2003 (HY000): Can't connect to MySQL server on 'ip address' (111)的处理办法

    远程连接mysql数据库时可以使用以下指令 mysql -h 192.168.1.104 -u root -p 如果是初次安装mysql,需要将所有/etc/mysql/内的所有配置文件的bind-a ...

  2. ClouderManger搭建大数据集群时ERROR 2003 (HY000): Can't connect to MySQL server on 'ubuntucmbigdata1' (111)的问题解决(图文详解)

    问题详情 相关问题的场景,是在我下面的这篇博客里 Cloudera Manager安装之利用parcels方式(在线或离线)安装3或4节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(Ubun ...

  3. ERROR 2003 (HY000): Can't connect to MySQL server on 'ip地址' (110)

    用windows能远程连接数据库服务器,用ubuntu就报错,怎么都连不上,报这个错ERROR 2003 (HY000): Can't connect to MySQL server on 'ip地址 ...

  4. [转]MySQL远程连接ERROR 2003 (HY000):Can't connect to MySQL server on'XXXXX'(111) 的问题

    问题描述: 从一台Linux远程连接另一台linux上的MySQL, 出现ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.x ...

  5. MySQL远程连接ERROR 2003 (HY000):Can't connect to MySQL server on'XXXXX'(111) 的问题

    装了个navicat ,然后去连接mysql服务器,一直连不上,一开始以为是防火墙问题,后来防火墙都关闭, iptable服务关闭,还是不行,网上查了下:主要是因为设置了bind_address=12 ...

  6. mysql远程连接出现 ERROR 2003 (HY000): Can't connect to MySQL server on IP

    修改了如下两个位置,解决了这个问题: 修改/etc/mysql/my.cof配置文件:因为mysql默认只允许本机连接 修改远程连接用户权限:远程连接的用户被设置为不允许远程连接 首先修改/etc/m ...

  7. mysql绿色版安装问题解决(ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061))

    原来一直是使用MySQL安装版没有出现过问题,今天在安装绿色版MySQL时出现了点问题 在安装成windows服务成功后,用net start mysql 启动时提示启动成功,但当我连接mysql就报 ...

  8. 【linux错误解决】MySQL远程连接ERROR 2003 (HY000):Can't connect to MySQL server on'XXXXX'的问题

    问题描述: 从一台linux远程连接另一台linux上的MySQL, 出现ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.x ...

  9. ERROR 2003 (HY000): Can't connect to MySQL server

    http://blog.csdn.net/longxibendi/article/details/6363934 一.问题的提出 /usr/local/webserver/mysql/bin/mysq ...

随机推荐

  1. jQuery分析(1) - 介绍

    前言 web技术高速发展到现在已经出了现非常多的库或框架,库或框架实现方法也是五花八门.现在要实现一个web站点只需要根据自己的业务需求选择js框架即可快速完成.有些框架可以快速满足业务需求,但是有些 ...

  2. ARM开发板系统移植-----kernel的编译

    前面一篇文章http://www.cnblogs.com/linzizhang/p/4817336.html介绍了开发板上系统软件的第一部分--bootloader的编译方法. 背景:把bootloa ...

  3. 从网页psd到html的开发

    从网上下载了一张psd的网页设计稿,初学html+css,所以记录一下我的学习过程.原图是这个样子:             原图                                   ...

  4. 学习Swift--下标脚本

    下标脚本 下标脚本可以定义在类(Class).结构体(structure)和枚举(enumeration)这些目标中,可以认为是访问集合(collection),列表(list)或序列(sequenc ...

  5. iOS:NAV+TABLE结合

    功能:点击列表项,用列表字符串作为参数创建一个新视图,新视图默认可以有一个BACK按钮回到上一个视图 // // main.m // Hello // // Created by lishujun o ...

  6. imacros实现Excel数据自动录入到网页中

    一.工具选择 最近接到一个项目,需要将excel数据逐条录入.保存到网页中.经过搜集资料,能实现功能的大概有以下几种方式,按键精灵.autoit.imacros.python+selenium. 按键 ...

  7. 关于执行ST_Geometry的st_centroid函数时报ORA-28579错误的问题

    环境 SDE版本:10./10.2/10.2.1/10.2.2 Oracle版本:11g R2 11.2.0.1 Windows版本:Windows Server 2008 R2 问题描述及原因 以全 ...

  8. socket、tcp、http

    第一部分.概念的理解 1.什么是Socket? Socket又称之为“套接字”,是系统提供的用于网络通信的方法.它的实质并不是一种协议,没有规定计算机应当怎么样传递消息,只是给程序员提供了一个发送消息 ...

  9. CentOS 6.0图解网络安装全过程

    转自CentOS 6.0图解网络安装全过程 国内镜像站点(东北大学.网易) 网易镜像站点:http://mirrors.163.com/centos/6.0/isos/ 中科大镜像站点:http:// ...

  10. VSFTP被动模式

    搞了几个弯路,各种办法都试了. 动静最小的,还是定义端口. 还有虚拟用户,配置太多,只适用于小范围吧.又要pam.d,又要chroot之类的,nologin也必不可少. ~~~~~~~~~ 限制被动模 ...