5

我使用 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,一切都会正常工作。

有人遇到过这种情况么?

4

2 回答 2

3

我可以通过将它分成两个调用来实现它:

% mysqldump MyDB | mysql MyDB2
% mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt MyDB | mysql MyDB2
于 2009-02-02T19:33:50.960 回答
3

如果在 MyDB2 中运行查询时出现错误,最好:

  1. 运行 mysqldump 将输出保存到保存的文件中。
  2. 一点一点地运行文件,找出哪个部分有问题。
  3. 修复那一点。

我曾经遇到过这样的问题,我从旧版本的 mysql 导出并导入到新版本中,该新版本已将我的列名之一声明为保留字。您在不同服务器上的两个数据库是否运行不同版本的mysql?或者数据库之间是否存在其他差异(例如字符集)?

于 2010-02-11T22:58:42.057 回答