RDS MySQL通过控制台操作数据库账号报错

本文介绍通过控制台修改RDS MySQL实例数据库账号权限或删除账号时,出现报错的原因及解决方案。

问题描述

  • 通过RDS MySQL控制台修改账号权限时报错,错误码为Account.UpdateError

    image

  • 通过RDS MySQL控制台删除账号时报错,错误码为Account.DelError

    image

问题原因

该问题是由于通过MySQL命令行创建的数据库账号,如果host值不是%(表示允许任何主机/IP登录),则不支持在RDS控制台修改这些账号权限或者删除账号。

解决方案

  • 方案一:使用高权限账号通过MySQL命令行进行授权或者删除账号。

    • 授权语句如下:

      GRANT '<填写权限类型,例如CREATE>' ON *.* TO '<填写待授权的普通账号名>'@'<填写host,%表示任意主机>';

      示例如下:

      -- 给名为zhttest的账号授予在所有数据库中创建、查询的权限
      GRANT CREATE, SELECT ON *.* TO 'zhttest'@'%';
      说明
    • 删除语句如下:

      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';

相关文档