由于我的sql文件中存在以下命令,我无法在AWS RDS中导入数据库:
SET @@SESSION.SQL_LOG_BIN= 0;
SET @@GLOBAL.GTID_PURGED=/*!80000 '+'*/ '';
SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;
它们重要吗?涂掉它们没有错误。
log_bin_trust_function_creators参数在自定义参数中设置为1。
FYI:MySql 5.7和8,相同的错误
ERROR 1227 (42000) at line 20: Access denied; you need (at least one of) the SUPER, SYSTEM_VARIABLES_ADMIN or SESSION_VARIABLES_ADMIN privilege(s) for this operation
SET @@SESSION.SQL_LOG_BIN=0;
这是告诉MySQL不要将这些INSERT语句放入二进制日志中。如果您没有启用二进制日志(不复制),则删除它不是问题。据我所知,没有办法在RDS中启用它。我实际上是在试图找出一种方法,这就是我如何找到您的问题。
SET @@GLOBAL.GTID_PURGED=/*!80000 '+'*/ '';
您是否在转储源自的数据库上执行了RESET MASTER
?检查此值的说明:gtid_purged
SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;
这会将@@SESSION.SQL_LOG_BIN
变量设置回原始设置;您应该已经看到另一行,例如:SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN;
如果您只是将此表恢复到未写入二进制日志(用于复制)的新数据库中,则可以安全地删除这些行。希望这会有所帮助!