【发布时间】:2012-07-21 01:10:37
【问题描述】:
我正在尝试将我的 mysql 数据库从 Amazon EC2 复制到 RDS:
我使用这个成功地将我的数据库的mysqldump 放入我的根文件夹:
root@ip-xx-xx-xx-xx:~# mysqldump my_database -u my_username -p > my_database.sql
然后我尝试将此 .sql 文件传输到我的新 RDS 数据库:
root@ip-xx-xx-xx-xx:~# mysql my_database -u my_username -p -h
my_new_database.xxxxxxxxx.us-east-1.rds.amazonaws.com < my_database.sql
很遗憾,我收到以下错误消息:
You do not have the SUPER privilege and binary logging is enabled
(you *might* want to use the less safe log_bin_trust_function_creators variable)
我尝试了多种方式GRANT SUPER..,但是当我尝试这样做时也遇到了错误。键入 mysql > FLUSH privileges; 也不起作用。
我是一个 mysql 初学者,很抱歉这么简单的问题。想法?
【问题讨论】:
-
您不能在 RDS 上
GRANT SUPER。 RDS 无法获得 SUPER 特权。 -
使用相同的 MySQL 用户名创建和恢复转储(用于连接和转储中的 DEFINER 关键字)。更改 log_bin_trust_function_creators 不是理想的解决方案。最糟糕的是在这种情况下使用 -f 参数
-
在我的情况下,我的
sql文件有CREATE FUNCTION需要特权用户的语句。 see this
标签: mysql amazon-ec2 amazon-web-services amazon-rds grant