最近需要备份迁移RDS数据库,备份下来的库7G左右,备份下来的SQL文件里有几行参数删掉才能导入新的数据库里,记录下此次过程!

导入报错信息如下:

1
Err]1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation-- MySQL dump 10.13 Distrib 5.6.32, for linux(x86_64)---- Host;.....

根据提示说是没有权限,但是确认过是有读写的权限的,然后查资料查到需要把set相关的语句删掉即可,一共有四行。这里我把语句贴出来 应该都大同小异。

1
2
3
4
5
6
SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN;
SET @@SESSION.SQL_LOG_BIN= 0;

SET @@GLOBAL.GTID_PURGED='55a52aexxxxxxxxxxx-xxxx';

SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;

由于文件较大,服务器配置略低,这里我使用sed命令来删除这几行

1
2
3
4
5
6
7
sed -i 's/SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN;/ /g' backup.sql

sed -i 's/SET @@SESSION.SQL_LOG_BIN= 0;/ /g' backup.sql

sed -i 's/SET @@GLOBAL.GTID_PURGED='55a52aexxxxxxxxxxx-xxxx';/ /g' backup.sql

sed -i 's/SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;/ /g' backup.sql

删除以后就可以导入了。这里我使用命令行恢复

1
mysql -h 192.168.1.x -u username -p password -P 3306 db_name < backup.sql

参考地址:https://www.cnblogs.com/oldboyooxx/p/9764611.html