mysqlworkbench 在导出数据库时给出版本错误

Posted

技术标签:

【中文标题】mysqlworkbench 在导出数据库时给出版本错误【英文标题】:mysqlworkbench giving version error on exporting database 【发布时间】:2013-03-16 16:46:03 【问题描述】:

当我尝试通过 mysql Workbench 从本地服务器远程导出我的数据库时,

我收到一些低于版本的错误:

mysqldump 版本不匹配 [内容] mysqldump.exe 是5.5.16 版本,但是要转储的MySQL Server 是5.6.10-log 版本。因为mysqldump的版本比服务器旧,有些功能可能无法正常备份。建议您升级本地 MySQL 客户端程序,包括 mysqldump 到等于或高于目标服务器的版本。然后必须在 Preferences -> Administrator -> Path to mysqldump Tool 中设置转储工具的路径

我正在寻找解决方案 - 我在 google 上搜索了解决方案,但找不到解决问题的好答案。

有谁知道,如何在 MySQL Workbench 中解决这个问题?

【问题讨论】:

您是否尝试按照建议升级 MySQL? 我不认为这是错误。您有两个 MySQL 服务器版本之间的版本不兼容问题。我想你应该在本地升级你的mysql版本。 错误信息非常丰富 IMO! 我应该升级什么? mysql 安装在服务器上还是应该升级 mysqlworkbench? O_o 我建议使用mysqldump。 【参考方案1】:

转到:Edit -> Preferences -> Administrator -> Path to Mysqldumptool: 在您的 MySQL 服务器安装文件夹中查找文件 mysqldump.exe(可能是:mysql/bin/)。 然后单击它,然后单击OK。之后尝试进行备份。

【讨论】:

Stack Overflow 是一个英文网站。我已经使用谷歌翻译翻译了你的答案,请检查它的准确性。 arrrriba gustavo gracias 我做了同样的解决方案,但我仍然有这个错误:12:55:50 Dumping wordnetsemanticsimilarity (all tables) Running: "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump. exe" --defaults-file="c:\users\admini~1\appdata\local\temp\tmpv_dqzx.cnf" --user=root --host=localhost --protocol=tcp --port=3306 -- default-character-set=utf8 --skip-triggers "wordnetsemanticsimilarity" mysqldump: Got error: 130: Incorrect file format 'inter' when using LOCK TABLES Operation failed with exitcode 2 12:55:50 Export of C:\Users\Administrator \Documents\dumps\Dump20180812.sql 已完成,出现 1 个错误 在 MacOs 中,路径为:MySQLWorkbench - Preferences - Administration - Path to mysqldump Tool。【参考方案2】:

幸运的是,虽然不是很明显,但有一个相当简单的解决方案。您只需要更新mysqldump.exe.exe 文件的最新版本可以在中找到。要解决此问题,只需转到 Edit->Preferences->Administrator,并浏览以下路径

C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump.exe

获取此文件并将其替换为 Path to mysqldump tool 文本框

可能是在上面提到的之前设置了下面的路径,所以用较新的替换它就行了

C:\Program Files\MySQL\MySQL Workbench CE 5.2.47\mysqldump.exe

您的路径可能略有不同,但解决方案保持不变。 在某些操作系统(64 位)中,有两个文件夹 C:\Program Files (x86)\MySQLC:\Program Files\MySQL 但是你必须去C:\Program Files\MySQL 希望它会有所帮助:)

【讨论】:

这似乎只适用于服务器与 MySQL Workbench 位于同一台机器上并且类型相同的情况。如果服务器是远程 MySQL Linux 服务器并且 MySQL Workbench 在 Windows PC 上运行,这似乎根本没有帮助。 如果 MySQL 服务器不在您的本地机器上(就像我的机器一样),请下载 MySQL Workbench 显示的版本。就我而言:(5.7.35)。搜索:'download mysql 5.7.35' 并下载。然后解压zip文件,找到:mysql-5.7.35-winx64\bin\mysqldump.exe【参考方案3】:

在基于 Linux 的 Ubuntu 中,编辑 > 首选项... > 管理(选项卡),将“mydqldump 工具的路径”设置为 /usr/bin/mysqldump(很可能在默认情况下位于它应该是)。

如果不确定,可以尝试在终端运行以下命令来查找mysqldump所在的位置:

locate mysqldump

【讨论】:

【参考方案4】:

消息说您需要更新的 mysqldump 工具。与您要从中转储的服务器匹配的服务器。因此,根据您运行的平台,从具有最新版本的服务器安装中获取 mysqldump 工具的副本。每台服务器都带有一个 mysqldump 工具。所以应该很容易得到一份。

将工具放在它具有持久主目录但不与其他实例冲突的位置,并将 MySQL Workbench 指向它(如消息所述)。

【讨论】:

【参考方案5】:

我试图通过使用Edit > Preferences... > Administration (tab) 的默认mysqldump 和/usr/bin/mysqldump 的设置来解决这个问题,但这不起作用。

我看到 XAMPP 服务器也有一个运行良好的 mysqldump 文件!通常,您可以在 /opt/lampp/bin/mysqldump(对于 Debian 和类似系统)中找到它,因此您可以在工作台内的首选项中使用此路径。

【讨论】:

【参考方案6】:

在我的 Mac 上(运行最新的 Mac OS Sierra),我将 mysqldump 的路径更改为 /Applications/XAMPP/xamppfiles/bin/mysqldump,从而解决了问题。以前,路径被设置为 mysqldump 的不同版本(旧版本)。所以,你需要获取最新版本的mysqldump。

【讨论】:

有关如何更改目标的更多信息:转到 mysqlworkbench 并编辑首选项:mysqlworkbench/preferences.../Administartion 编辑“mysqldump 工具的路径:”字段并选择您的本地 mysqldump 示例:/usr/local/Cellar/mysql/5.7.21/bin/mysqldump【参考方案7】:

当您的 mysql 工作台的版本与您的 mysql 服务器的版本不同时,会发生这种情况。对此的解决方案是使用与您的服务器版本相同的 mysqldump.exe 进行导出/转储。 步骤:

    下载与您的服务器相同版本的mysql zip。 (例如 mysql-5.7.25-winx64.zip) 在此压缩包中,您将在 bin 文件夹下找到 mysqldump.exe。 打开 Mysql 工作台。转到编辑 -> 首选项 -> 管理。 现在,在 Path to mysqldump Tool : 中,给出这个下载的 mysqldump.exe 的路径

【讨论】:

【参考方案8】:

我确实从这里 https://downloads.mysql.com/archives/community/ 获取了 mysql 版本需要的存档

并从那里使用mysqldump。它对我有帮助。

【讨论】:

【参考方案9】:

由于这些答案对于 Mac 用户来说并不完全清楚,因此我在这里找到了我的 MySQLDump 文件:

应用程序 > MAMP > 库 > bin > mysqldump

快速搜索“mysqldump”应该可以找到它。 我按照上面的答案去了:

首选项 > 管理 > mysqldump 工具的路径:

这是我现在的路径:/Applications/MAMP/Library/bin/mysqldump

【讨论】:

【参考方案10】:

对我有用的解决方案如下:

    进入页面https://www.pconlife.com/viewfileinfo/mysqldump-exe/ 有一个 mysqldump.exe 文件列表,他们必须下载与错误中出现的版本匹配的版本。

    然后转到通常安装mysql的文件夹 C:\Program Files\MySQL\MySQL Workbench 8.0 CE 他们把下载的文件放在那里,然后给它替换。

    现在打开 MySQL,它们将更改出现在的路径: 首选项> 管理> mysqldump 工具的路径: 通过替换文件所在的地址

就是这样

【讨论】:

【参考方案11】:

wb_admin_export.py(由 mysqldump 使用)查看 PATH 变量以查找 mysqldump 并获取版本号。确保它的 mysqldump 来自 mysql bundle,而不是 mysql workbench...

【讨论】:

【参考方案12】:

这里的 Mac 用户:我在更新 MySQLWorkbench 后遇到了这个问题。尝试了一切......最后,我下载了旧版本并降级了MySQLWorkbench。完美运行。

【讨论】:

对于 Mac 用户,它只有在重启 Mysql Workbench 后才能工作,在设置中将路径设置为 Mysqldumptool(编辑 - 首选项 - 管理员)。【参考方案13】:

对于 Mac 用户,它只有在重启 Mysql Workbench 后才能工作,在设置中将 Path 设置为 Mysqldumptool(编辑 - 首选项 - 管理员)。

【讨论】:

【参考方案14】:

这里没有其他答案对我有用,所以我将发布另一种修复我的方法(我使用的是 Windows WSL Ubuntu 18.04)。

TL;DR:检查您的 MySQL 配置文件中是否有 local_infile=1 行并将其更改为 loose-local-infile=1 或将其完全注释掉,如果您现在不需要它然后重启你的 MySQL Workbench。

进一步说明:我关闭 MySQL Workbench 并打开终端并运行 mysqldump --version,它给了我这个错误:mysqldump: [ERROR] unknown variable 'local_infile=1'.,我意识到我在 @987654326 中添加了一些东西@file 之前是为了使用本地文件将一些数据导入数据库,但是as it turns out,其他一些MySQL工具(比如mysqldump,大概)不太理解这一行,所以我注释掉了然后mysqldump --version工作正常并提供正确的版本号,没有任何其他问题。现在我再次打开 MySQL Workbench,这次它工作正常。

HTH。

【讨论】:

【参考方案15】:

如果上述解决方案均无效,则可以在 wb_admin_export.py 中硬编码 mysqldump 的版本

def get_mysqldump_version():
    #path = get_path_to_mysqldump()
    #if not path:
    #    log_error("mysqldump command was not found, please install it or configure it in Edit -> Preferences -> Administration")
    #    return None
    #  
    #output = StringIO.StringIO()
    #rc = local_run_cmd('"%s" --version' % path, output_handler=output.write)
    #output = output.getvalue()
    #
    #if rc or not output:
    #    log_error("Error retrieving version from %s:\n%s (exit %s)"%(path, output, rc))
    #    return None
    #  
    #regexp = ".*Ver ([\d.a-z]+).*"
    #if ("Distrib" in output):
    #    regexp = ".*Distrib ([\d.a-z]+).*"
    #
    #s = re.match(regexp, output)
    #
    #if not s:
    #    log_error("Could not parse version number from %s:\n%s"%(path, output))
    #    return None
    #
    #version_group = s.groups()[0]
    #major, minor, revision = [int(i) for i in version_group.split(".")[:3]]
    #return Version(major, minor, revision)
    return Version(5, 7, 30)

只有这对我有用:Windows 上的 Workbench 和远程 linux 上的 Mysql 服务器。

【讨论】:

【参考方案16】:

我必须制作远程数据库的本地副本,并且面临 MySQLWorkbench 的版本问题。为了避免重新安装 MySQLWorkbench 以适应远程数据库版本,我做了下一步:

    我使用 ssh 将我的数据库从远程服务器导出到 /home/my-user/ 文件夹(在远程服务器上):

    root@bananapi# mysqldump -u root -p my-incredible-password > /home/my-user/database-dump-18-set-2020.sql

    将 sql 脚本放在 /home/my-user/ 远程目录中,我使用 scp 命令将其下载到本地文件夹中:

    my-user % scp root@remote-server-ip-address:/home/my-user/database-dump-18-set-2020.sql /Users/my-mac-user/tmp/

我只需要使用我的 MySQLWorkbench 打开 sql 脚本文件并将数据导入本地数据库。我希望这可以帮助某人。

【讨论】:

以上是关于mysqlworkbench 在导出数据库时给出版本错误的主要内容,如果未能解决你的问题,请参考以下文章

使用带有 INSERT 语句的 MySQL Workbench 导出数据库

MySQL Workbench 逆向工程师与导出数据

Mysql Workbench - 将 sql 脚本从 ER 图中导出到数据库

从 mysql Workbench 6.0 导出数据

从 MySQL Workbench 导出 EER 图的 XML

如何将MySql Workbench中的表格数据导出为csv?