欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql常见连接问题汇总  

程序员文章站 2022-05-27 13:44:54
...

阅读原文请点击

摘要: 实为吾之愚见,望诸君酌之!闻过则喜,与君共勉,诸君有其他案烦请留言提供,以帮助更多人

 

实为吾之愚见,望诸君酌之!闻过则喜,与君共勉!诸君有其他案例烦请留言提供,以帮助更多人!

 

第一节 环境准备

1.1 自建mysql环境主机

主机:iZbp1e*****krn92qrx0Z

内网ip: 10.26.254.217

1.2 客户端ecs主机

主机:iZbp1e6*****zkrn92qrwzZ

内网ip: 10.24.236.231

1.3  说明

说明:mysql的account的组成为’user’@’host’

第二节  常见问题复现

2.1 ERROR 1045 (28000)

现象描述:

ERROR 1045 (28000): Access denied for user 'testcon'@'10.24.236.231' (using password: YES)

可能1:password错误

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

当使用'testconcon'@'10.24.236.231'的account错误的password时,登录失败,因为创建了testcon@’%’,

所以account验证可以通过,但是密码不对

可能2:user错误(account错误)

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

当使用错误的user时,登录失败,按照之前的account的构成,实际的进行验证的account是: 'testconcon'@'10.24.236.231',

但是并没有创建'testconcon'@'10.24.236.231',而是创建的为testcon@’%’,所以account验证失败,即使使用正确的密

码也无法登录,当创建一个'testconcon'@'%'的时候,使用正确密码则登录正常,如下:

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

可能3:account错误

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

与第二种相比,此次创建的账号和密码有如下对应:

Account

Password

testcon@'10.24.236.231'

123

testcon@'1.1.1.1'

12

当使用testcon@'10.24.236.231'以及密码12登录时,登录失败,因为testcon@'10.24.236.231'的

password为123,所以使用password为123可以正常登录

2.2 ERROR 2005 (HY000)

现象描述:

ERROR 2005 (HY000): Unknown MySQL server host 'com-mysql.coflodhn1n0y.us-west-1.rds.amazonaws.com' (110)

可能1:DNS解析异常

Mysql常见连接问题汇总
            
    
    
         

同ping来获取ip,无法获取到,故mysql命令行进行连接时就出错了,此时需要通过ping来观察dns的解析,并检查系统dns配置

2.3 ERROR 1449 (HY000)

现象描述:

ERROR 1449 (HY000): The user specified as a definer ('testcon'@'10.24.236.231') does not exist

或者

ERROR 1045 (28000): user not exist

可能1:account不存在(阿里云rds高安全模式特有)

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

当把高安全模式切换到标准模式是,再次进行测试则变成ERROR 1045 (28000): Access denied for user 'contest'@'10.24.236.231'

 (using password: YES),如下:

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
          

2.4 ERROR 2003 (HY000)

现象描述:

ERROR 2003 (HY000): Can't connect to MySQL server on 'test.mysql.rds.aliyuncs.com' (110)

可能1:安全限制,不允许访问

Mysql常见连接问题汇总
            
    
    
         

一般表现为telnet特定特定端口不通

可能2:端口错误

Mysql常见连接问题汇总
            
    
    
         

端口错误,即使没有安全限制也无法连接,telnet 特定端口也不会通

可能3:mysql服务未正确运行

先关掉自建mysql数据库

Mysql常见连接问题汇总
            
    
    
         

然后进行连接

Mysql常见连接问题汇总
            
    
    
         

同样表现为telnet 特定断开不通

可能4:如果是rds  for mysql,且访问模式为标准模式,原因为客户端的ip地址在rds的白名单未配置

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

当加上白名单后(等待任务运行完成):

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

2.5 ERROR 1135 (HY000)

现象描述:

ERROR 1135 (HY000): Can't create a new thread (errno 11); if you are not out of available memory, you can consult the

 manual for a possible OS-dependent bug

可能1:limits.conf文件对max user processes做了限制

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

 

可能2:mysql没有可用内存

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

 

2.6 ERROR 1130 (HY000)

现象描述:

ERROR 1130 (HY000): Host '192.168.1.3' is not allowed to connect to this MySQL server

可能1:mysql.user表里没有匹配的host名称

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

2.7 ERROR 1045 (HY000)

现象描述:

ERROR 1045 (HY000): #28000ip not in whitelist

可能1:rds for mysql的提示,且访问模式为高安全模式才会出现,原因是ip地址没有在rds的白名单中

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

当添加白名单后(等待任务运行完成):

 

Mysql常见连接问题汇总
            
    
    
         

 

 Mysql常见连接问题汇总
            
    
    
         

2.8 ERROR 5 (HY000)

现象描述:

ERROR 5 (HY000): Out of memory (Needed 260400 bytes)

可能1:mysql没有可用内存

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

2.9 ERROR 1129 (HY000)

现象描述:

ERROR 1129 (HY000): Host '10.24.236.231' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

可能1:达到了mysql服务器设置的max_connect_errors的值

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

上面通过3次telnet,然后进行第四次时提示ERROR 1129 (HY000): Host '10.24.236.231' is blocked because of many connection

 errors; unblock with 'mysqladmin flush-hosts',原因是已经超过了max_connect_errors=3的值,解决方法为mysqladmin flush-hosts:

 

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

需要注意的是,当进行多次登录失败时,是没有影响的:

Mysql常见连接问题汇总
            
    
    
         

 

2.10 ERROR 1226 (42000)

现象描述:

ERROR 1226 (42000): User 'testcon' has exceeded the 'max_user_connections' resource (current value: 2)

可能1:达到了该account设定的max_user_connections大小

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

当使用grant设定了testcon@’%’的max_user_connections为2时,并发连接超过2就会提示ERROR 1226 (42000): 

User 'testcon' has exceeded the 'max_user_connections' resource (current value: 2),如果没有手动grant指定,会

用系统参数max_user_connections的值来设定,解决办法是重新grant为0或者调整系统变量max_user_connections,

如果没有权限,也可以删除账号重新创建

2.11 ERROR 1226 (42000)

现象描述:

ERROR 1226 (42000): User 'testcon' has exceeded the 'max_connections_per_hour' resource (current value: 2)

可能1:达到了该account设定的max_connections_per_hour大小

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

使用testcon一小时内登录2次后就会提示ERROR 1226 (42000): User 'testcon' has exceeded the 

'max_connections_per_hour' resource (current value: 2)

解决办法是重新grant该账号max_connections_per_hour为0,如果没有权限,也可以删除账号重新创建

2.12 ERROR 1040 (HY000)

现象描述:

ERROR 1040 (HY000): Too many connections

可能1:达到了mysql系统参数max_connections的限制

Mysql常见连接问题汇总
            
    
    
         

Mysql常见连接问题汇总
            
    
    
         

当并发连接大于max_connections的值时,就会出现ERROR 1040 (HY000): Too many connections

解决办法是调整max_connections的值,如果是rds for mysql,需要升级实例规格

阅读原文请点击