从 MySQL 转储中删除 DEFINER 子句
MySQL 转储可能包含 DEFINER 子句,它指定创建要转储的数据库对象的用户和主机。将转储导入到不同环境时,这些子句可能会引起安全问题或导致冲突。
为了缓解这些问题,通常需要从转储文件中删除 DEFINER 子句。虽然无法阻止在导出过程中将 DEFINER 添加到转储中,但之后删除它们是可行的。
删除技术
生成后转储文件中,可以采用多种方法删除 DEFINER 子句:
perl -p -i.bak -e "s/DEFINER=\`\w.*\`@\`\d[0-3].*[0-3]\`//g" mydatabase.sql
mysqldump ... | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > triggers_backup.sql
通过应用其中一种方法,您可以有效地从 MySQL 转储中删除 DEFINER 子句,并提高数据库备份的安全性和可移植性。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3