Mysql导入sql脚提示ERROR 1227 (42000) at line 18: Access denied; you need (at least one of) the SUPER priv
mysql导入sql脚本
·
使用mysqldump将数据导出到sql,再导入rds MySQL时。导入过程中可能会遇到以下错误:
ERROR 1227 (42000) at line 18: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
1.问题原因:MySQL导入用户的权限问题。
处于安全考虑,rds MySQL的最高权限用户root是没有super权限的,当前自建用户也不能有super权限。但是用户执行导入的sql中,包含需要super权限的语句,所以会报错。
如果源库开启了GTID特性,使用mysqldump 导出数据时,没有添加选项--set-gtid-purged=OFF,导出的sql中就有存在以下需要super权限执行的语句:
SET @@SESSION.SQL_LOG_BIN= 0;
SET @@GLOBAL.GTID_PURGED=´18f9a804-343b-11e5-a21d-b083fed01601:1-2´;
2.解决办法
办法1:导出语句中添加选项**--set-gtid-purged=OFF**重新导出,再导入即可。
例如:
mysqldump -h192.168.8.77 -uroot -p123456 --set-gtid-purged=OFF rchz>D:\autobackup\rchz.sql
办法2:使用source方式导入,这种方式即使权限问题报错,剩余sql语句仍可继续执行,不影响最终数据。
mysql>source /tmp/dump.sql
注意:sql文件的路径和权限
mysql -hdb.com -P50003 -uroot -p'2sd7' open -e "source /root/open.sql"
更多推荐
已为社区贡献1条内容
所有评论(0)