导入阿里云数据库报错

ERROR 1227 (42000) at line 85511: Access denied; you need (at least one of) the SUPER privilege(s) for this operation

需要root权限,但是阿里云没有,所以需要删除sql文件内的设置

cd至sql文件目录,查询DEFINER

[root@ifz 2]# grep -rnR "DEFINER" *
we.sql:85512:/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */

 

查询到85512行有这个内容,

删除

/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */

再导入即可

 

删除方法:

vi we.sql

读取文件完成后,输入 :85512  然后回车,即可直接跳到此行,然后 按 i 编辑,删除后,按ecs退出编辑,然后 :wq,回车保存

 

方法二

在Linux命令行下导出存储过程、触发器和函数,命令如下:

mysqldump -h 127.0.0.1 -u root -p --opt --default-character-set=utf8 --hex-blob <自建数据库名> -R | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > /tmp/<自建数据库名>Trigger.sql

示例

mysqldump -h 127.0.0.1 -u root -p --opt --default-character-set=utf8 --hex-blob testdb -R | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > /tmp/testdbTrigger.sql

------------------------------------------------------------

rds区分表名大小写

lower_case_table_names=0区分 lower_case_table_names=1不区分

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐