閱讀原文請點選
摘要: 實為吾之愚見,望諸君酌之!聞過則喜,與君共勉,諸君有其他案煩請留言提供,以幫助更多人
實為吾之愚見,望諸君酌之!聞過則喜,與君共勉!諸君有其他案例煩請留言提供,以幫助更多人!
第一節 環境準備
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錯誤
當使用'testconcon'@'10.24.236.231'的account錯誤的password時,登入失敗,因為建立了testcon@’%’,
是以account驗證可以通過,但是密碼不對
可能2:user錯誤(account錯誤)
當使用錯誤的user時,登入失敗,按照之前的account的構成,實際的進行驗證的account是: 'testconcon'@'10.24.236.231',
但是并沒有建立'testconcon'@'10.24.236.231',而是建立的為testcon@’%’,是以account驗證失敗,即使使用正确的密
碼也無法登入,當建立一個'testconcon'@'%'的時候,使用正确密碼則登入正常,如下:
可能3:account錯誤
與第二種相比,此次建立的賬号和密碼有如下對應:
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解析異常
同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高安全模式特有)
當把高安全模式切換到标準模式是,再次進行測試則變成ERROR 1045 (28000): Access denied for user 'contest'@'10.24.236.231'
(using password: YES),如下:
2.4 ERROR 2003 (HY000)
現象描述:
ERROR 2003 (HY000): Can't connect to MySQL server on 'test.mysql.rds.aliyuncs.com' (110)
可能1:安全限制,不允許通路
一般表現為telnet特定特定端口不通
可能2:端口錯誤
端口錯誤,即使沒有安全限制也無法連接配接,telnet 特定端口也不會通
可能3:mysql服務未正确運作
先關掉自建mysql資料庫
然後進行連接配接
同樣表現為telnet 特定斷開不通
可能4:如果是rds for mysql,且通路模式為标準模式,原因為用戶端的ip位址在rds的白名單未配置
當加上白名單後(等待任務運作完成):
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做了限制
可能2: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名稱
2.7 ERROR 1045 (HY000)
現象描述:
ERROR 1045 (HY000): #28000ip not in whitelist
可能1:rds for mysql的提示,且通路模式為高安全模式才會出現,原因是ip位址沒有在rds的白名單中
當添加白名單後(等待任務運作完成):
2.8 ERROR 5 (HY000)
現象描述:
ERROR 5 (HY000): Out of memory (Needed 260400 bytes)
可能1: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的值
上面通過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:
需要注意的是,當進行多次登入失敗時,是沒有影響的:
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大小
當使用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大小
使用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的限制
當并發連接配接大于max_connections的值時,就會出現ERROR 1040 (HY000): Too many connections
解決辦法是調整max_connections的值,如果是rds for mysql,需要更新執行個體規格
閱讀原文請點選