更新时间:2025-04-23 gmt 08:00
rds for mysql实例无法访问-j9九游会登录
故障描述
客户端无法连接数据库,连接数据库时返回如下报错信息:
- 故障一
error 1045 (28000): access denied for user ‘root'@‘192.168.0.30' (using password:yes)
- 故障二
error 1226 (42000):user‘test' has exceeded the‘max_user_connections' resource (current value:10)
- 故障三
error 1129 (hy000): host ‘192.168.0.111' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
故障一
- 排查密码root账号的密码是否正确。
一般情况下,error 1045报错为密码错误引起的,因此需要首要排除是否密码错误问题。
select password(‘test1i@123'); select host,user,password from mysql.user where user=‘test1';

使用错误的密码登录就会失败。

- 确认该主机是否有连接数据库实例的权限。
select user, host from mysql.user where user=‘username';

如果该数据库用户需要从其他主机登录,则需要使用root用户连接数据库,并给该用户授权。
以加入主机ip为192.168.0.76举例:
grant all privileges on test.* to 'test1'@'192.168.0.76' identified by 'test1i@123';
flush privileges;

- 确认rds for mysql客户端和实例vip的连通性。
尝试进行ping连接性能,若可以ping通,排除telnet数据库端口的问题。
- 查看实例安全组,排查是否因安全策略问题引起的报错。
- 查询user表信息,确认用户信息。

在排查中发现存在两个root用户。
如果用户的客户端处于192.168的网段,rds for mysql数据库的是对root@'192.168.%'这个用户进行认证的。而用户登录时使用的为root@'%'这个账号所对应的密码,因而导致连接失败,无法正常访问。此次问题是因密码错误引起的访问失败。
在此案例中,root@'%'为console创建实例时设置密码的账号。
故障二
- 排查是否在创建rds for mysql用户时,添加了max_user_connections选项,导致限制了连接数。
select user,host ,max_user_connections from mysql.user where user=‘test';

经排查发现由于设置了max_user_connections选项,导致连接失败。
- 增加该用户最大连接数。
alter user test@‘192.168.0.100' with max_user_connections 15。
- 查询变更结果,检查是否可正常访问数据库。

故障三
- 排查是否由于rds for mysql客户端连接数据库的失败次数(不包括密码错误),超过了max_connection_errors的值。
- 在数据库端解除超出限制问题。使用root用户登录mysql,执行flush hosts。
或者执行如下命令。
mysqladmin flush-hosts –u
–p -h -p 。 - 再次连接,检查是否可正常访问数据库。
相关文档
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨