RDS for MySQL全备恢复到本地提示无super权限
场景描述
使用RDS for MySQL时,如果想搭建本地MySQL从库,会使用云上RDS for MySQL全量备份恢复到本地环境。在和云上RDS for MySQL实例建立主备关系时(执行change master命令),通常会出现如下错误:
报错ERROR 1227:
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operation
原因分析
RDS for MySQL的root用户没有super权限,恢复到本地需要手动添加。
解决方案
手动给root用户赋予super权限,详细步骤如下:
- 对本地恢复的MySQL,设置免密登录:在配置文件“my.cnf”的[mysqld]组下,添加如下配置项:skip-grant-tables=on。示例:
- 重启mysqld进程。
- 使用rdsAdmin账户免密登录数据库。
- 给root用户授权。
grant all on *.* to root @'%';
flush privileges;
- 去掉免密登录设置:在配置文件“my.cnf”的[mysqld]组下,删除如下配置项:skip-grant-tables=on。
- 重启mysqld进程。
- 使用root账户登录数据库,并检查权限。
此时,再使用root用户执行change master操作,不会出现super权限错误。