本文介绍通过控制台修改RDS MySQL实例数据库账号权限或删除账号时,出现报错的原因及解决方案。
问题描述
- 通过RDS MySQL控制台修改账号权限时报错,错误码为 - Account.UpdateError。 
- 通过RDS MySQL控制台删除账号时报错,错误码为 - Account.DelError。 
问题原因
该问题是由于通过MySQL命令行创建的数据库账号,如果host值不是%(表示允许任何主机/IP登录),则不支持在RDS控制台修改这些账号权限或者删除账号。
解决方案
- 方案一:使用高权限账号通过MySQL命令行进行授权或者删除账号。 - 授权语句如下: - GRANT '<填写权限类型,例如CREATE>' ON *.* TO '<填写待授权的普通账号名>'@'<填写host,%表示任意主机>';- 示例如下: - -- 给名为zhttest的账号授予在所有数据库中创建、查询的权限 GRANT CREATE, SELECT ON *.* TO 'zhttest'@'%';说明- 更多关于GRANT命令的说明,请参见MySQL官方说明文档。 
- 可授予的权限列表,请参见账号权限列表。 
 
- 删除语句如下: - DROP USER '<填写待删除的普通账号名>'@'<填写host,%表示任意主机>';- 示例如下: - -- 删除名为zhttest的账号 DROP USER 'zhttest'@'%';
 
- 方案二:使用高权限账号通过MySQL命令行将数据库账号的host修改为 - %,然后再前往RDS控制台进行账号授权或者删除账号。- UPDATE mysql.user SET host='%' WHERE user='<填写普通账号名>';- 示例如下: - -- 将名为zhttest的账号的host属性修改为%,即允许从任何主机登录 UPDATE mysql.user SET host='%' WHERE user='zhttest';
相关文档
- 如何登录到RDS MySQL实例,请参见通过命令行、客户端连接RDS MySQL实例。 
- 通过RDS控制台、SQL语句或API修改数据库账号权限的方法,请参见修改账号权限或GrantAccountPrivilege - 授权账号访问数据库。 
- 通过RDS控制台、SQL语句或API删除数据库账号的方法,请参见删除账号或DeleteAccount - 删除数据库账号。 
该文章对您有帮助吗?