场景描述
在控制台以root账号通过DAS登录实例时,报错Access denied。

原因分析
- 查看mysql.user表中的root账号信息,排查客户端IP范围是否正确、是否使用SSL。
SELECT * FROM mysql.user WHERE User='root';
如果发现root账号的ssl_type被设置为ANY,表明root账号需要使用SSL连接。
- 查看SSL开启情况。
show variables like '%ssl%';
发现该实例未开启SSL:

因此,问题原因是自行修改root账号的ssl_type为ANY后,导致无法登录。
解决方案
将root账号的ssl_type修改为空即可,参考命令:
update mysql.user set ssl_type='' where user = 'root';
如果要将其他所有用户账号的ssl_type修改为空,参考命令:
update mysql.user set ssl_type='' where user not like 'rds%';