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

Posted

技术标签:

【中文标题】在两台计算机之间移动连接和实例【英文标题】:Moving connections and instances between two computers 【发布时间】:2011-05-25 22:51:36 【问题描述】:

我有一个 mysql 服务器,我用 MySQL Workbench 远程管理。

现在我有一台新计算机,但找不到任何解决方案将我的连接和实例配置文件移动到我的新计算机。这不可能是一个未解决的问题,对吧?这不是第一次发生在别人身上。

更正:这不是我要移动的服务器实例。我需要在 MySQL Workbench 中导出/移动/备份我的许多客户端配置文件/实例连接。

【问题讨论】:

【参考方案1】:

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

Select Tools > Configuration > Backup Connections

这将导出为 .zip。然后在你的新安装上

Select Tools > Configuration > Restore Connections

就是这样!

【讨论】:

谢谢!这应该是最佳答案! 绝对应该是最佳答案。简单! @ Spaceships ,@Glyn Jackson 嗨,我想知道如何在 windows 中执行命令。谢谢 很遗憾,它不会备份您的密码 我通过尝试得到的结果:“从备份文件恢复连接”期间出错。调用 Python 模块函数 PyWbUtils.restoreConnections 时出错【参考方案2】:

我也有同样的问题。我在 %APPDATA% 中找到了一个 MySQL 目录。将整个目录复制到新机器上的相同位置。您需要清除密码并重新输入。一旦我这样做了,我就重新开始运行了。

您可以在 Windows 资源管理器的地址栏中输入您的 %APPDATA% 文件夹。

【讨论】:

您不需要整个文件,只需要connections.xml。您仍然需要为每个连接再次输入密码。 在 6.0.8 版本中您似乎不再需要重新输入密码,太棒了! Windows 7 位置:C:\Users[用户名]\AppData\Roaming\MySQL\Workbench\ssh 在 Linux 上配置在 ~/.mysql/workbench/ @DrCord 显然,在 6.3 中需要重新输入密码。【参考方案3】:

在 Mac 上找到它 /Users/Username/Library/Application Support/MySQL/Workbench/

名为connections.xml的文件

【讨论】:

谢谢!我能够将connections.xml 和server_instances.xml 从PC 复制到Mac,然后我的PC 上的所有连接都可以在我的Mac 上使用。 在 Mac OS X High Sierra 和 MysqlWorkbench 6.3 上,文件 ~/Library//Application Support/MySQL/Workbench/connections.xml 为空。【参考方案4】:

使用菜单工具>配置>备份连接工具>配置>恢复连接备份和恢复连接是最简单的方法,但它不会复制密码。

在以下情况下可以提取密码:

    旧电脑应该是 Windows 安装。 您应该能够使用最初在 Workbench 中保存密码的 Windows 帐户登录,即无需管理员重置 Windows 帐户的密码。

如果满足以上要求,可以登录旧电脑运行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;

【讨论】:

【参考方案5】:

在 Linux (Ubuntu) 中,位置更改为 $HOME/.mysql/workbench

在 Ubuntu 14.04 LTS 上测试。

【讨论】:

在 Ubuntu 18.04.1 上验证 在 Ubuntu 20.04 上对我来说是 gedit ~/snap/mysql-workbench-community/current/.mysql/workbench/connections.xml【参考方案6】:

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

【讨论】:

很高兴你写了它:)【参考方案7】:

复制它们!

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

【讨论】:

【参考方案8】:

我在路径 C:\Users\.sqlworkbench\WbProfiles.xml 中找到了文件“WbProfiles.xml”

复制文件或复制完整的“.sqlworkbench”文件夹到新机器的相同路径下。

【讨论】:

【参考方案9】:

如果要在Windows中使用Python恢复“workbench_user_data.dat”文件中加密的密码,可以使用下面的sn-p。

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)

【讨论】:

请解释你的代码在做什么以及它为什么回答这个问题【参考方案10】:

遗憾的是,在最新版本的 MySQL Workbench(Windows 中至少为 8.0.25、8.0.27)上,.zip 文件格式的备份和恢复不起作用。

有关详细信息和解决方法,请参见此处: https://bugs.mysql.com/bug.php?id=102501

【讨论】:

【参考方案11】:

此错误的备份解决方法:

复制这两个文件:connections.xml 和 server_instances.xml 这些文件的位置(在 windows 中)是:C:\Users\AppData\Roaming\MySQL\Workbench(替换为您自己的 windows 用户名)

恢复: 将上述 2 个文件复制到目标安装上的相同位置。

警告:我不知道连接的密码“vault”保存在哪里,因此您可能需要重新输入这些密码,但连接和服务器列表会保留。

奖励:要恢复您的工作区(所有打开的 .sql 选项卡等),您还可以复制“workbench”目录下的“sql_workspaces”目录,它也会恢复这些!

【讨论】:

以上是关于在两台计算机之间移动连接和实例的主要内容,如果未能解决你的问题,请参考以下文章

TCP / IP在两台计算机之间发送数据?

使用python套接字在两台计算机之间进行通信

通过IP地址与C#聊天程序。连接不同网络中的两台计算机

如何使用 R 连接两台计算机?

SQL server 2005 远程连接问题

Socket 编程