【问题标题】:mysqlworkbench giving version error on exporting databasemysqlworkbench 在导出数据库时给出版本错误
【发布时间】: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。

标签: php mysql export mysql-workbench


【解决方案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 进行导出/转储。 步骤:

        1. 下载与您的服务器相同版本的mysql zip。 (例如 mysql-5.7.25-winx64.zip)
        2. 在此压缩包中,您将在 bin 文件夹下找到 mysqldump.exe。
        3. 打开 Mysql 工作台。转到编辑 -> 首选项 -> 管理。
        4. 现在,在 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】:

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

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

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

              3. 现在打开 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 以适应远程数据库版本,我做了下一步:

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

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

                        2. 将 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 脚本文件并将数据导入本地数据库。我希望这可以帮助某人。

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 2020-12-09
                          • 2012-10-11
                          • 2020-06-12
                          • 2016-07-16
                          • 1970-01-01
                          • 2021-08-19
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多