mysql 不能连接问题汇总

数据库连接不成功:

报错信息:ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.1' (111)
1,可能网络连接问,远程ping xxx.xxx.xxx.1 ,能ping通,排除此情况
[mysql@vvmvcs0 ~]$ ping xxx.xxx.xxx.1
PING xxx.xxx.xxx.1 (xxx.xxx.xxx.1) 56(84) bytes of data.
64 bytes from xxx.xxx.xxx.1: icmp_seq=1 ttl=63 time=0.230 ms

2,排查可能由于1上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
知识说明:这种情况可以TCP/IP连接
通过查看了my.cnf文件,以上两个都是没设置的,排除掉这两种情况、

3,排查DNS解析问题,检查是否设置了: skip_name_resolve
[mysqld]
skip_name_resolve
知识说明:这个参数加上后,不支持主机名的连接方式。

4, 排查用户和密码问题, 其实用户和密码的错误,不会出现111的,所以排除用户密码问题
ERROR 1045 (28000): Access denied for user 'root'@'XXXX' (using password: YES)

5,排查--port问题,有可能5的MySQL port不是默认3306, 这样我远程连接时,没有指定--port,用的是3306, 而1上没有对3306进行监听。
ps -ef | grep mysqld
果然是: 1上的MySQL使用的是3308 port.
最终连接方式:加上--port=3308
[mysql@vvmvcs0 ~]$ mysql -hxxx.xxx.xxx.1 -uroot -p --port=3308
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.

情况2:ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.1' (113)

解决方法:确定远程机器的防火墙关闭,或在防火墙允许3306端口号

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. MySQL体系结构与管理 1.1 MySQL C/S结构介绍 两种连接方式: TCP/IP:mysql -u...
    子晋zj阅读 406评论 0 0
  • 1. MySQL体系结构与管理 1.1 MySQL C/S结构介绍 *** 两种连接方式: TCP/IP:mysq...
    山有木兮_8adb阅读 398评论 0 0
  • 一 下载软件 www.mysql.com 二 安装mysql mkdir -p /app cd app ...
    da2002阅读 193评论 0 0
  • 配置MySQL服务器 第一步是设置MySQL服务器,以侦听机器上的某个特定IP地址或所有IP地址。 如果MySQL...
    can_4999阅读 703评论 0 0
  • 1.4 逻辑结构 库 ---> 表 ----》数据行(记录),字段(列),属性(列属性,列约束,列的数据类型等,表...
    张鑫泽_2109阅读 505评论 0 0