在两台计算机之间移动连接和实例

74
我有一个使用MySQL Workbench远程管理的mysql-server。
现在我有了一台新电脑,但我找不到任何解决方案将我的连接和实例配置文件移动到新电脑上。这不能是未解决的问题,对吧?这对其他人来说也不是第一次遇到该问题。
更正:我需要导出/移动/备份MySQL Workbench中的多个客户端配置文件/实例连接,而不是服务器实例。
12个回答

133

不需要像其他回答建议的那样手动复制任何文件。在Windows和Mac上,您可以在MySQL Workbench中导出所有设置并恢复到另一个系统中。

Select Tools > Configuration > Backup Connections

这将导出为.zip文件。然后在您的新安装中只需执行以下操作:

Select Tools > Configuration > Restore Connections

Linux MySQL Workbench备份/还原连接

就是这样!


@太空飞船,@Glyn Jackson你好,我想知道如何在Windows中执行命令。谢谢。 - Edward
3
很遗憾,它不会备份你的密码。 - Magus
2
我尝试后得到的结果是:在“从备份文件还原连接”期间出现错误。调用Python模块函数PyWbUtils.restoreConnections时出错。 - Vlado
@Vlado 我有同样的问题,Workbench 版本为 8.0.25。 - Lorenzo Belfanti
@Vlado 同样的问题。看起来这是自2021年2月以来存在的一个错误。 - Forbidden
显示剩余2条评论

56

我有同样的问题。我在%APPDATA%中找到了一个MySQL目录。将整个目录复制到新机器上的相同位置即可。您需要清除密码并重新输入它们。一旦完成,您就可以再次运行。

您可以通过在Windows资源管理器地址栏中输入它来找到%APPDATA%文件夹。


10
你不需要整个文件,只需connections.xml。但你仍需要为每个连接重新输入密码。 - Paul
2
在6.0.8版本中,看起来您不再需要重新输入密码了,太棒了! - DrCord
2
Windows 7 位置:C:\Users[用户名]\AppData\Roaming\MySQL\Workbench\ssh - bjtilley
3
在Linux上,配置文件位于~/.mysql/workbench/。 - Jonathan Gruber
2
@DrCord 显然,在6.3版本中需要重新输入密码。 - TheFrost
显示剩余2条评论

15
我在Mac电脑上找到了这个文件,路径为/Users/用户名/Library/Application Support/MySQL/Workbench/,文件名为connections.xml。

谢谢!我已经成功将 connections.xml 和 server_instances.xml 从 PC 复制到 Mac 上,现在我的 Mac 上也可以使用来自 PC 的所有连接了。 - Doug Davis
在Mac OS X High Sierra和MysqlWorkbench 6.3上,文件~/Library/Application Support/MySQL/Workbench/connections.xml为空。 - user674669

13
使用菜单工具 > 配置 > 备份连接工具 > 配置 > 恢复连接是最简单的备份和恢复连接的方法,但不会复制密码。
在以下情况下可以提取密码:
  1. 旧 PC 应该安装 Windows。
  2. 您应该能够使用最初在 Workbench 中保存密码的 Windows 帐户登录,即无需管理员重置 Windows 帐户的密码。
如果满足上述要求,可以登录旧 PC 并运行在http://www.donationcoder.com/forum/index.php?topic=41860.msg391762#msg391762找到的解密工具。
以下是解密的 C++ 代码(鸣谢:f0dder)。
std::vector<unsigned char> decrypt(BYTE *input, size_t length) {
        DATA_BLOB inblob { length, input };
        DATA_BLOB outblob;

        if (!CryptUnprotectData(&inblob, NULL, NULL, NULL, NULL, CRYPTPROTECT_UI_FORBIDDEN, &outblob)) {
                throw std::runtime_error("Couldn't decrypt");
        }

        std::vector<unsigned char> output(length);
        memcpy(&output[0], outblob.pbData, outblob.cbData);

        return output;
}

9
在Linux(Ubuntu)中,位置已更改为$HOME/.mysql/workbench
在Ubuntu 14.04 LTS上进行了测试。

已在Ubuntu 18.04.1上验证。 - thanassis
对我来说,在Ubuntu 20.04上是 gedit ~/snap/mysql-workbench-community/current/.mysql/workbench/connections.xml - Ryan

7

在替换connection.xml文件之前,请先关闭Workbench应用程序,否则应用程序将在退出时覆盖/保存xml文件。


很高兴你写了它 :) - undefinedman

4

只需复制它们!

在Linux中,它们位于$HOME/.mysqlgui/


2
如果您想在Windows上使用Python恢复“workbench_user_data.dat”文件中加密的密码,可以使用以下代码片段。
import os,win32crypt
encrypted_data = open(f"C:\\Users\\{os.getlogin()}\\AppData\\Roaming\\MySQL\\Workbench\\workbench_user_data.dat", "rb").read()
clear_data = win32crypt.CryptUnprotectData(encrypted_data, None, None, None, 0)
print(clear_data)

请解释一下您的代码是做什么的,为什么能回答这个问题。 - DevWithZachary

1
很遗憾,在最新版本的MySQL Workbench(至少在Windows上为8.0.25和8.0.27),备份和恢复.zip文件格式无法正常工作。
请参阅此处以获取详细信息和解决方法: https://bugs.mysql.com/bug.php?id=102501

1

如果您正在使用 Windows 上的 .NET Framework 4.x 或 .NET Core,或者是 .NET 5 或更高版本,还可以使用 Windows 兼容性包,只需将以下内容复制粘贴到新的控制台项目中:

using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;

static class Program
{
    static void Main()
    {
        String appDataRoaming = Environment.GetFolderPath( System.Environment.SpecialFolder.ApplicationData );
    //  String appDataRoaming = @"C:\Users\$you\AppData\Roaming\";

        FileInfo workbenchUserDataFileName = new FileInfo( Path.Combine( appDataRoaming, @"MySQL\Workbench\workbench_user_data.dat" ) );

        Byte[] ciphertext = File.ReadAllBytes( path: workbenchUserDataFileName.FullName );
        Byte[] cleartext  = ProtectedData.Unprotect( ciphertext, optionalEntropy: null, DataProtectionScope.CurrentUser );
        
        String text = Encoding.ASCII.GetString( cleartext ); // <-- You may need to change this to `Encoding.UTF8`
        text = text.Replace( '\u0002', '\n' ).Replace( '\u0003', '\n' );
        Console.WriteLine( text );
    }

}

完美运作! - Anthony Serrano Bianco
完美运作! - undefined

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