在我的数据库备份和导出中,我得到了如下内容:
/*!50001 DROP TABLE `vTime`*/;
/*!50001 DROP VIEW IF EXISTS `vTime`*/;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`db_user`@`%` SQL SECURITY DEFINER */
/*!50001 VIEW `vTime` AS select ... */;mysqldump只做一个简单的CREATE VIEW呢?/*!50001部件意味着什么?编辑:--我应该补充一下,这是我得到的错误:
#1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation
编辑2:似乎只有/*!50013 DEFINER=部件失败了。
发布于 2015-03-20 15:48:49
/*!50001部件是版本号。
这里已经回答了这个问题:MySQL flags in dumps
删除定义器的主要问题是最好用脚本来完成。已经在网上的一些例子:
https://dbperf.wordpress.com/2010/04/12/removing-definer-from-mysql-dump/
发布于 2021-05-24 14:32:23
这个sed命令应该用于从mysqldump中删除这两个子句-
sed -e 's|^/[*]!50001 CREATE ALGORITHM=UNDEFINED [*]/|/*!50001 CREATE */|' -e '/^[/][*]!50013 DEFINER=/d'如上文所述,其中50001和50013是各自的版本。
https://stackoverflow.com/questions/25924796
复制相似问题