MySQL 5.6.5-m8转储失败

MySQL 5.6.5-m8转储失败,mysql,ubuntu,mysqldump,Mysql,Ubuntu,Mysqldump,我们使用MySQL 5.6.5-m8开发版本。 尝试转储数据库时,出现以下错误: user@ubuntu-11:~$mysqldump-u root-p my_schema>dump.sql 输入密码: mysqldump:无法执行“SET OPTION SQL\u QUOTE\u SHOW\u CREATE=1”:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行(1064)附近使用“OPTION SQL\u QUOTE\u SHOW\u CREATE=1”的正确语

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

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


有人能就这个问题提出建议吗?

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

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

MySQL5.6中断并删除了对
SET OPTION
语法的支持,但即使是最新的mysqldump 5.5.30(在编写本文时)仍然生成
SET OPTION
。换句话说,mysqldump 5.5不能从mysql5.6服务器转储

见:


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

Workbench与MYSQL安装在不同的位置。 除了MySQL安装的副本外,Workbench还安装了自己的sqldump副本

WORKBENCH“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版本复制到我的工作台目录,现在一切正常:)


希望这有帮助!以下是Burhan Khalid的答案

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

解决方法命令示例:

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

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


然后导入dbdump.sql或执行任何需要的操作都可以。

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

  • 查找mysqldump(我的位于/usr/bin/mysqldump)
  • 获取它的副本并将其放入十六进制编辑器(我使用HxD)
  • 查找“设置选项SQL\u QUOTE\u SHOW\u CREATE”为纯文本(ANSI,每字符1字节)字符串,并用空格(十六进制0x20)将“选项”字节清空
  • 改用此修改版的mysqldump

然后,假装你不只是用一个粗犷的方法解决了这个问题,在你去喝咖啡的路上试着忘掉它。它已经为我工作了几个月了

--force
运行它并检查输出是否有错误。这并没有澄清问题。当使用--force运行时,我几乎每隔1-2秒就会遇到相同的问题,并有以下输出:mysqldump:cannotexecute'SET OPTION SQL\u QUOTE\u SHOW\u CREATE=1':您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在第1行(1064)使用“OPTION SQL\u QUOTE\u SHOW\u CREATE=1”的正确语法。我不愿意承认这一点,但当无法更新mysqldump并且只需要执行一次时,这实际上起到了作用。现在剩下的就是喝咖啡,直到我忘记,或者原谅我自己:)就是这么做的。我想今晚我会做噩梦。我不知道为什么没有更多的建议使用
--force
选项作为解决方法,正如您在这里解释的那样。有没有我不知道的副作用?