2

我正在尝试将我的 MySQL备份databases到.RackSpaceAWS

我已遵循此博客中的建议,并log_bin_trust_function_creators=1在我的AWS RDS控制面板中进行了设置并重新启动了我的数据库实例。

但是,经过一段时间和一些位被移动后,我收到以下错误:

Warning: Using a password on the command line interface can be insecure.
  16GiB 0:36:39 [7.43MiB/s] [7.43MiB/s]
ERROR 1227 (42000) at line 21566: Access denied; you need (at least one of) the SUPER privilege(s) for this operation

我知道我的数据库中有一些触发器,也许还有其他一些好东西,尽管我grantsaws一切似乎都足够了:

mysql> SHOW GRANTS;
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@%                                                                                                                                                                                                                                                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD <secret> WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

可能是什么问题呢?我该如何解决?

编辑

而不是转储到ssh我只是把它转储到sed -n '21565,21567p'所以我假设输出(行号)应该是正确的:

/*!50001 SET collation_connection      = utf8_general_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`127.0.0.1` SQL SECURITY DEFINER */
4

1 回答 1

0

这里的问题是您的数据库中的定义行。永远记住:

仅当您具有 SUPER 权限时,您才能指定除您自己帐户之外的 DEFINER 值。(阅读下文)

http://dev.mysql.com/doc/refman/5.6/en/stored-programs-security.html

并且始终牢记 RDS 不会让您获得超级特权。

于 2016-08-03T15:48:03.447 回答