1. 错误信息
2. 错误出现的场景
3. 错误原因
4. 解决
4.1 去除 DEFINER 子句
4.2 去除 GTID_PURGED 子句
4.3 检查修改后的文件
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到RDS MySQL导入SQL时显示错误代码1227和1725,具体场景、原因及解决方案如下:
Err] 1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation
ERROR 1725 (HY000) at line 1936: OPERATION need to be executed set by ADMIN
这些错误通常在尝试创建存储过程、函数、触发器、事件或视图时发生,尤其是在将本地数据库的SQL导出文件应用到RDS MySQL环境中,或是将RDS MySQL 5.6的逻辑备份导入到其他数据库(无论是RDS内还是本地)时。
DEFINER='root'@'%'
的语句。对于Linux系统,可以使用命令:
sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/ ' your.sql > your_revised.sql
GTID_PURGED
的语句。Linux环境下,可采用如下命令:
awk '{ if (index($0,"GTID_PURGED")) { getline; while (length($0) > 0) { getline; } } else { print $0 } }' your.sql | grep -iv 'set @@' > your_revised.sql
egrep -in "definer|set @@" your_revised.sql
如果经过上述步骤处理后问题仍未解决,请联系售后技术支持获取进一步帮助。