导入带有事件的mysqldump输出时出现错误1064

时间:2018-12-28 15:06:33

标签: mysql

当我在具有单个事件的db1_name上运行以下命令时,出现错误:

$mysqldump -uroot -ppwd db1_name --no-create-db --no-create-info --no-data --skip-triggers --events --set-gtid-purged=OFF | mysql -uroot -ppwd db2_name
ERROR 1064 (42000) at line 25: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*/' at line 1

mysql服务器从本地计算机上的docker容器运行。 mysqlmysqldump实用程序与服务器(8.0.12)的版本相同,但直接用尽了本地计算机。

如果我将mysqldump命令的输出转储到文件中并删除错误行上的所有注释。即来自:

/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`%`*/ /*!50106 EVENT `cleanup` ON SCHEDULE EVERY 5 MINUTE STARTS '2018-12-01 00:00:00' ON COMPLETION PRESERVE ENABLE DO DROP TEMPORARY TABLE IF EXISTS tmp_tbl; */ ;;

收件人:

CREATE DEFINER=`root`@`%` EVENT `cleanup` ON SCHEDULE EVERY 5 MINUTE STARTS '2018-12-01 00:00:00' ON COMPLETION PRESERVE ENABLE DO DROP TEMPORARY TABLE IF EXISTS tmp_tbl; ;;

然后导入该文件即可正常进行...

PS:这不是定界符问题:语句由mysqldump创建,该语句处理定界符更改(从;;;并返回。我没有在上面复制/粘贴这些定义,但是它们显然存在于mysqldump输出中)

0 个答案:

没有答案