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)\MySQL
和
C:\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 - 将 sql 脚本从 ER 图中导出到数据库