我使用mysqldump工具制作数据库副本。问题是,当我使用--routines参数将存储过程与数据一起输出时,当我尝试将其导入时,生成的输出会导致错误。

它是这样的:

% mysqldump --routines MyDB | mysql MyDB2

(其中MyDB2已经存在但为空)

我得到的错误如下:
ERROR 1064 (42000) at line 307: 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 23

如果我省略--routines,一切都将正常运行。

有人遇到过这种情况么?

最佳答案

通过将它分为两​​个调用,我能够使它工作:

% mysqldump MyDB | mysql MyDB2
% mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt MyDB | mysql MyDB2

10-04 20:46