从 MySQL 转储中删除 DEFINER 子句
MySQL 转储包含 DEFINER 子句,它指定创建数据库对象的用户和主机。但是,出于安全或其他原因,您可能希望删除这些子句。
使用文本编辑删除 DEFINER 子句
一种方法是使用文本编辑器。搜索包含 DEFINER 子句的行(例如“DEFINER=root@localhost”)并将其替换为空字符串 ("") 或任何所需的值。
使用 Perl 删除 DEFINER 子句
Perl 可用于从转储中删除子句。使用以下命令,将“mydatabase.sql”替换为转储文件的名称:
perl -p -i.bak -e "s/DEFINER=\`\w.*\`@\`\d[0-3].*[0-3]\`//g" mydatabase.sql
管道输出以删除 DEFINER 子句
您还可以删除子句通过像 sed:
mysqldump ... | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > triggers_backup.sql
这样的命令来管道转储输出,此命令将用星号 (*) 替换 DEFINER 子句。您可以根据需要进一步自定义替换模式。
注意:
以上是以下是基于所提供文章的一些标题,格式为问答形式: 选项 1(直接且集中): * 如何从 MySQL 转储中删除 DEFINER 子句? 选项 2(更具体):的详细内容。更多信息请关注PHP中文网其他相关文章!