6

我们使用 MySQL 5.6.5-m8 开发版本。
当我们尝试转储数据库时,我们收到以下错误:

user@ubuntu-11:~$ mysqldump -u root -p my_schema > dump.sql
输入密码:
mysqldump: 无法执行 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行 (1064) 的 'OPTION SQL_QUOTE_SHOW_CREATE=1' 附近使用正确的语法

任何人都可以就这个问题提出建议吗?

4

6 回答 6

11

MySQL 5.6 停止并删除了对SET OPTION语法的支持,但即使是最新的 mysqldump 5.5.30(在撰写本文时)仍会生成SET OPTION. 换句话说,mysqldump 5.5 不能从 MySQL 5.6 服务器转储。

见:http ://bugs.mysql.com/bug.php?id=67507

最初的问题可能是 5.6.5-m8 的临时问题,但我认为找到这个问题的人可以使用这些信息。

于 2013-03-19T08:56:04.950 回答
4

我有这个问题。事实证明,我使用的 mysqldump 客户端是服务器后面的几个版本,并且使用了过时的语法。检查您的路径中是否有较旧的二进制文件 - 可能在 /usr/bin/ 中 - 并在与当前执行的 mysql 二进制文件相同的位置查找较新的二进制文件 - 可能是 /usr/local/mysql。

于 2012-07-17T19:11:48.193 回答
3

如果您处于无法升级 mySQL(或接触现有工具)的情况,请尝试以下方法:

  • 找到mysqldump(我的在 /usr/bin/mysqldump)
  • 获取它的副本并将其放入十六进制编辑器(我使用 HxD)
  • 查找“SET OPTION SQL_QUOTE_SHOW_CREATE”作为纯文本(ANSI,1-byte-per-char)字符串,并用空格(0x20 in hex)将“OPTION”字节空白
  • 请改用这个修改后的mysqldump版本!

然后,假装你不只是用一个坚韧不拔的技巧解决了问题,并在去喝咖啡的路上试着忘记它。它已经为我工作了几个月!

于 2014-01-15T22:27:04.350 回答
2

得到同样的错误。我在 /usr/bin 中有以前安装的 MySQL 5.1 遗留下来的二进制文件。我验证了二进制文件也在我的 MySQL 5.6 bin 文件夹中,然后我删除了 /usr/bin 版本。之后,mysqldump 运行正常。

于 2012-10-05T20:24:35.230 回答
1

为 Burhan Khalid 的回答 +1

使用 --force 运行它,将其输出到 dbdump.sql,针对任何不兼容的语句对其进行编辑。

解决方法命令示例:

mysqldump -uusername --ppassword --force dbname > dbdump.sql

编辑您的 dbdump.sql 以修复跨 mysql 版本的任何不兼容语句。 对我来说,这是时间戳表达式:从 5.6 默认的 'CURRENT_TIMESTAMP' 到 5.5 的默认 CURRENT_TIMESTAMP。

然后导入 dbdump.sql 或做任何你需要做的事情都可以。

于 2013-12-28T22:11:32.130 回答
0

Workbench 没有和 MYSQL 安装在同一个地方。除了与 MySQL 一起安装的副本之外,Workbench 还安装了它自己的 sqldump 副本。

工作台 "C:\Program Files\MySQL\MySQL Workbench CE 5.2.47\sqldump.exe" = 5.5.16 MYSQL "C:\Program Files\MySQL\MySQL Server 5.6\bin\sqldump.exe" = 5.6.10。

我将 MYSQL 版本复制到我的工作台目录,现在一切正常:)

希望这可以帮助!这是链接

于 2013-06-18T05:55:24.447 回答