【问题标题】:Workbench migration via ssh - how to set up a tunnel通过 ssh 迁移工作台 - 如何设置隧道
【发布时间】:2015-08-26 00:45:04
【问题描述】:

我尝试使用 Workbench 将 MSSQL(本地计算机)迁移到 MYSQL(亚马逊网络服务)。我可以连接到两个数据库。但是,当我迁移时,出现此错误:

此版本不支持通过 SSH 连接 Mysql...

嗯,我在文档中找到了这个:

一种解决方法是设置加密隧道,然后将 MySQL 目标视为标准 TCP(未加密)连接。

但我不知道如何设置隧道。有人可以帮忙吗?

【问题讨论】:

  • 您是否正在从 MS SQL Server 隧道连接到 AWS MySQL 机器?如果是这样,您使用的是 Putty 吗?
  • 我在 Windows 机器上,是的,我尝试了腻子。我可以在腻子和工作台中设置 ssh 连接。问题是Workbench需要隧道,不知道怎么设置。

标签: mysql sql-server ssh workbench ssh-tunnel


【解决方案1】:

好的,如果我理解正确的话,我想我更愿意在 Putty 中设置一个隧道。我对 MySQL Workbench 的工作原理没有深入的了解(我假设它类似于 SSMS),但我曾经使用过 maaany SSH 隧道。以下是一些基本说明:

http://www.electrictoolbox.com/putty-create-ssh-port-tunnel/

您需要创建一个从您选择的任何端口(虽然我会使用 MySQL 默认 3306)到目的地127.0.0.1:3306 的本地隧道。请务必单击添加并将会话设置保存在 Putty 中。

打开与 AWS 机器的 SSH 连接。尝试通过127.0.0.1:3306 连接到您的 MySQL 实例。这应该允许您从本地 SQL Server 中提取数据并将数据发送到您的 AWS 实例(当然是通过隧道,127.0.0.1:3306)。

希望这会有所帮助。如果这不能解决您的问题,请告诉我。

【讨论】:

  • 我按照您的指示创建了一条隧道。在腻子中,我在日志中看到本地端口 3306 转发到主机:3306。但是我无法使用 Workbench (127.0.0.1:3306) 连接到 AWS 上的 mysql ..
  • 嗯,不确定 host:3306 部分是否正确。您在 Putty 中的隧道部分看起来像这样吗? i.imgur.com/rGFC0n7.png
  • 不,我所说的主机是指 ec2 服务器公共 IP 地址。
  • 这可能是问题所在。目的地必须是127.0.0.1:3306。隧道将流量从您的本地机器传输到 EC2 实例。当它到达 EC2 实例时,它会到达目标 IP 和端口。通过说127.0.0.1:3306,您是在告诉 EC2 实例将流量发送到 127.0.0.1,基本上是它自己,在端口 3306 上,即 MySQL 端口。
  • 你是对的。我尝试将 127.0.0.1:3306 作为目的地 - 它有效!现在 Workbench 像疯了一样迁移。谢谢!
【解决方案2】:

如果您有 Amazon ec2: 在 Windows 机器上通过 ssh 使用 putty 连接:

  1. 在会话主机名中 (user@public_ip_address)
  2. 连接 -> SSH -> 隧道(源端口:3306 或选择免费端口)和(目标 127.0.0.1:3306)
  3. 您可以检查是否在事件日志中建立了隧道(右键单击终端栏)
  4. 现在在 Workbench 中,您可以在没有 SSH 的情况下使用 TCP/IP。

谢谢大家!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 2016-10-23
    • 2016-09-09
    • 2014-09-03
    • 2013-05-26
    • 2013-11-17
    • 2020-06-17
    相关资源
    最近更新 更多