MySQL 5.6.10崩溃文件转储

45
我试图从MySQL数据库创建转储文件,但每次尝试时都会出现以下错误:

操作失败,退出码为2

16:06:07 Dumping proactivetraindb (userstate)

Running: mysqldump.exe --defaults-extra-file="h:\docume~1\anarita\locals~1\temp\tmpde5rwy.cnf"  --user=root --max_allowed_packet=1G --host=localhost --port=3306 --default-character-set=utf8 "proactivetraindb" "userstate"

mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': 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 'OPTION SQL_QUOTE_SHOW_CREATE=1' at line 1 (1064)

MySQL的版本是5.6.10,但MySQLDump的版本是5.5.16。有人知道如何解决吗?

给我们tmpde5rwy.cnf的内容,否则就让我们死吧!! - Hackerman
什么是tmpde5rwy.cnf? - aboliveira
这是您的选项文件,用于mysql dump命令的全局选项...问题可能在该文件中"--defaults-extra-file="h:\docume1\anarita\locals1\temp\tmpde5rwy.cnf" --"。祝好;) - Hackerman
16个回答

43
正如之前的回答所述,但为了进一步澄清:这是针对 Windows 中的 MySQL。
当我尝试从本地测试服务器中的表中转储数据时,我遇到了完全相同的问题,并且基于先前的答案,以下是我如何解决它的方法:
  1. 找到mysql原始下载文件夹,然后看看 /bin 文件夹中是否有 mysqldump.exe
  2. 进入 Workbench 偏好设置:Edit -> Preferences -> Administrator -> Path 以使用 mysqldump 工具,并输入您找到的 mysqldump.exe 路径。
  3. 按“OK”保存并重新启动 Workbench。
  4. 打开终端,在开始菜单的搜索区域中键入 cmd(Windows 7),并找到您在第1步中找到的 sql 文件夹,cd 进入 bin。 它应该长这样: C:\...\bin>。 在此处,输入 mysqldump -t -u [username] -p [database name] [tablename]。这将把 [tablename] 表中的数据转储到 Workbench 指定的转储文件夹中。
希望这可以帮助您!

1
这也可以通过使用工作台导出工具来实现...非常巧妙!!感谢 Maelstrom! - pythOnometrist
6
完全没有使用Workbench,只运行了mysqldump -u root [数据库名称] > dump.sql,就出现了这个错误。请帮我确认一下翻译是否准确无误。 - laggingreflex
我在设备上有两个版本的SQL服务器。我尝试了4.1 mysqldump版本的完整路径,但失败了。然后我尝试了5.6 mysqldump版本的完整路径,成功了。 - Keith John Hutchison

24

我在MySQL Workbench中遇到了同样的错误。

  1. 找出您所安装的MySQL 5.6提供的mysqldump工具的位置。在我的Mac上,它位于“usr/local/mysql-5.6.10-osx10.7-x86_64/bin/mysqldump”。
  2. 然后在MySQL Workbench/首选项/管理员/路径设置中设置此路径为mysqldump工具。
  3. 重启MySQL Workbench。

这样应该就能解决问题了。


我的位置在Finder中是这样的:Mac HD: /Shared Items/Public/mysql-5.6.10-osx10.7-x86_64/bin。感谢Vespucci75fr的帖子。 - twleblanc
3
对于Windows操作系统: %programfiles%\MySQL\MySQL Server 5.6\bin - Luke Marlin

20
由于MySQL 5.6已经移除了对"SET OPTION"的支持,您的mysql客户端工具可能是旧版本,最可能是5.5或5.1。关于这个问题,MySQL Bugs网站上有更多信息。
最快的解决方法是将您的mysql客户端工具更新到5.6,您的问题将会得到解决。如果您正在Linux平台上,这里有一个解决方案,对我来说效果很好:http://www.markomedia.com.au/mysqldump-mysql-5-6-problem-solved/

6
您必须使用mysqldump 5.6.x才能备份mysql 5.6数据库,因为MySQL 5.6停止并移除了对SET OPTION语法的支持。在32/64位Windows下,您需要执行以下步骤: 1.1. (32位win)下载Windows(x86,32位),ZIP归档文件5.6.19 212.3M http://dev.mysql.com/downloads/mysql/ (直接链接http://dev.mysql.com/downloads/file.php?id=452188) 1.2. (64位win)下载Windows(x86,64位),ZIP归档文件5.6.19 217.2M http://dev.mysql.com/downloads/mysql/ (直接链接http://dev.mysql.com/downloads/file.php?id=452189) 2. 从刚刚下载的文件mysql-5.6.19-win32(64).zip中提取出mysqldump.exe (位置在/mysql-5.6.19-win32(64)/bin/mysqldump.exe) 3. 将刚刚提取的文件替换为已安装的mysqldump.exe文件 (安装目录/mysql/bin/mysqldump.exe)

4

在使用Windows 7时,我发现更容易的解决方案是找到mysqldump.exe,它位于C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump.exe,然后将其复制并替换掉MySQL Workbench中位于根目录下的mysqldump.exe,该文件位于C:\Program Files\MySQL\MySQL Workbench CE 5.2.47\mysqldump.exe

重新启动MySQL Workbench,一切都应该正常工作。


1
如果您使用的是Windows 10,那么您的MySQL服务器将会安装在C:\Program Files\MySQL目录下,而其他所有组件都安装在C:\Program Files (x86)\MySQL中。打开MySQL Workbench>Edit>Preferences,一个窗口将会打开,点击Administrator选项卡并指定mysqldump.exe的路径(它位于C:\Program Files\MySQL中)。重新启动您的Workbench。
谢谢,愉快编程!

1

1
在Workbench中查找首选项:编辑 -> 首选项 -> 管理员 -> mysqldump工具路径。浏览bin文件夹中的MySQL文件夹,并查找mysqldump.exe。

0
为了兼容性,我需要在我的Windows 10机器上安装MySQL 5.6.41,所以我使用了5.6.41 MySQL安装程序来安装“全部”(我的Workbench、MySQL、连接器等)。
尽管我使用的是版本5.6.41的安装程序,但它安装了Workbench 8.0,以及各种连接器等的8.0版本。因此,我遇到了类似的错误。
似乎没有简单的方法可以强制安装较低版本的MySQL Workbench(在我的之前的机器上,在安装时没有这个冲突)。
对我有用的解决方案:
  1. 找到与您正在使用的MySQL版本匹配的mysqldump.exe版本:

    • 从Windows资源管理器中,搜索计算机上所有版本的mysqldump.exe
    • 右键单击它找到的每个mysqldump.exe -> 属性 -> 详细信息选项卡。
    • 找到版本5.6.41(与我运行的MySQL版本相匹配)
    • 点击回到常规选项卡,查看安装该版本mysqldump.exe的文件夹路径

    • 在我的情况下是C:\Program Files\MySQL\MySQL Server 5.6\bin(版本8.0安装在C:\Program Files\MySQL\MySQL Workbench 8.0 CE

  2. 现在打开MySQL Workbench..

    • 编辑 -> 首选项 -> 管理 -> mysqldump工具路径

    • 粘贴适当版本的mysqldump.exe的文件路径(包括文件名!)

    • 点击确定

    • 重新启动MySQL Workbench

enter image description here enter image description here enter image description here enter image description here

这对我有用。然而,如果您的计算机上有两个版本的MySQL,比如MySQL 5.6和5.7或8.0,我不知道如何使其工作。
因此,当我将我的任何/一些/所有云服务器升级到5.7版本时,这似乎是另一个要克服的挑战。由于Workbench只允许使用单个mysqldump.exe文件,无论本地MySQL服务器运行哪个版本... 或者每次打开使用端口连接到其他 MySQL版本的连接时手动更改路径位置(并记得在之后改回来)。

出于这个原因,我完全删除了MySQL 5.7,并且暂时将所有云(和本地)服务器保留在5.6版本 - 这是另一个项目。


0

对于Ubuntu用户来说,为了节省时间,mysqldump在“mysql-community-client_5.7.26-1ubuntu16.04_i386.deb”软件包中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接