Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysqlworkbench在导出数据库时给出版本错误_Php_Mysql_Export_Mysql Workbench - Fatal编程技术网

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

Php mysqlworkbench在导出数据库时给出版本错误,php,mysql,export,mysql-workbench,Php,Mysql,Export,Mysql Workbench,当我试图通过MySQL Workbench从localserver远程导出数据库时 我收到一些以下版本错误: mysqldump版本不匹配[Content]mysqldump.exe的版本为5.5.16,但要转储的MySQL服务器的版本为5.6.10-log。由于mysqldump的版本比服务器的版本旧,因此可能无法正确备份某些功能。建议您将本地MySQL客户端程序(包括mysqldump)升级到与目标服务器相同或更新的版本。然后必须在“首选项->管理员->mysqldump工具路径”中设置转储

当我试图通过MySQL Workbench从localserver远程导出数据库时

我收到一些以下版本错误:

mysqldump版本不匹配[Content]mysqldump.exe的版本为5.5.16,但要转储的MySQL服务器的版本为5.6.10-log。由于mysqldump的版本比服务器的版本旧,因此可能无法正确备份某些功能。建议您将本地MySQL客户端程序(包括mysqldump)升级到与目标服务器相同或更新的版本。然后必须在“首选项->管理员->mysqldump工具路径”中设置转储工具的路径

我正试图找到一个解决方案——我在谷歌上搜索了这个解决方案,但找不到一个好的答案来解决这个问题


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

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


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

转到:
编辑
->
首选项
管理员
->
Mysqldumptool的路径

在MySQL服务器安装文件夹中查找文件
mysqldump.exe
(可以是:
MySQL/bin/
)。
然后单击它,然后
OK
。然后尝试备份。

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

C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump.exe
抓取此文件并在mysqldump工具的
路径中替换它

在前面提到的路径之前可能设置了以下路径,因此只需将其替换为较新的路径即可

C:\Program Files\MySQL\MySQL Workbench CE 5.2.47\mysqldump.exe
对于您来说,路径可能略有不同,但解决方案保持不变。 在某些操作系统(64位)中,有两个文件夹
C:\ProgramFiles(x86)\MySQL
C:\ProgramFiles\MySQL
但是你必须选择
C:\ProgramFiles\MySQL

希望它能有所帮助:)

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

wb_admin_export.py(由mysqldump使用)查看路径变量以查找mysqldump并获取版本号。确保其mysqldump来自mysql捆绑包,而不是mysql workbench…

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

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

locate mysqldump

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

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

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

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


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

我试图使用默认的mysqldump使用
Edit>Preferences解决这个问题…>管理(选项卡)
,并从
/usr/bin/mysqldump
进行设置,但设置不起作用


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

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

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

  • Mac用户:我在更新MySQLWorkbench后遇到了这个问题。什么都试过了。。。。最后,我下载了旧版本并降级了MySQLWorkbench。工作完美无瑕。

    我确实从这里获取了mysql版need的存档


    从那里开始使用。这对我很有帮助。

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

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

    TL;DR:检查MySQL的配置文件中是否有行
    local_infle=1
    ,并将其更改为
    loose local infle=1
    ,如果您现在不需要,则将其全部注释掉,然后重新启动MySQL工作台

    进一步解释:我关闭MySQL Workbench并打开终端,运行了
    mysqldump--version
    ,它给了我这个错误:
    mysqldump:[error]未知变量“local\u infle=1”。
    ,我意识到我以前在
    /etc/my.cnf
    文件中添加了一些内容,以便使用本地文件将一些数据导入数据库,但是,一些其他MySQL工具(如
    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)