【问题标题】:Connection Mysql Workbench Vagrant连接 Mysql Workbench Vagrant
【发布时间】:2014-11-30 15:00:53
【问题描述】:

我正在使用 OSX,我无法将 MySQL 工作台连接到我的 vagrant。

我有这个配置:

vagrant 密码是 vagrant,mysql 密码是 root

我有这个错误

我真的不知道错误是在mysql连接还是ssh连接上

ssh vagrant@33.33.33.15 有效

MySQL 工作台连接 ssh 时出现错误

14:58:42 [INF][     SSH tunnel]: Existing SSH tunnel not found, opening new one
14:58:42 [INF][     SSH tunnel]: Opening SSH tunnel to 33.33.33.15
14:58:42 [ERR][sshtunnel.py:notify_exception_error:233]: Traceback (most recent call last):
  File "/Applications/MySQLWorkbench.app/Contents/Resources/sshtunnel.py", line 257, in _connect_ssh
    self._client.load_host_keys(os.path.expanduser(ssh_known_hosts_file))
  File "/Applications/MySQLWorkbench.app/Contents/Resources/libraries/paramiko/client.py", line 176, in load_host_keys
    self._host_keys.load(filename)
  File "/Applications/MySQLWorkbench.app/Contents/Resources/libraries/paramiko/hostkeys.py", line 155, in load
    e = HostKeyEntry.from_line(line)
  File "/Applications/MySQLWorkbench.app/Contents/Resources/libraries/paramiko/hostkeys.py", line 67, in from_line
    key = RSAKey(data=base64.decodestring(key))
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/base64.py", line 321, in decodestring
    return binascii.a2b_base64(s)
Error: Incorrect padding

14:58:42 [INF][     SSH tunnel]: TunnelManager.wait_connection returned OK
14:58:42 [INF][sshtunnel.py:set_keepalive:471]: SSH KeepAlive setting skipped.
14:58:42 [INF][     SSH tunnel]: SSH tunnel connect executed OK

我已经尝试在我的 vagrant 评论 bind-address 或将 bind-address 设置为 0.0.0.0 上编辑 my.cnf,但我遇到了同样的问题。

编辑:我在真实服务器上遇到同样的错误

【问题讨论】:

  • 您是否在连接中使用了有效的 ssh 端口号?
  • 是的,我确定端口 22 可以工作
  • 将 MySQL 主机名更改为 33.33.33.15
  • @harunyardimci 我有同样的错误
  • 您可以尝试将 SSH 主机名更改为 127.0.0.1:22

标签: mysql ssh


【解决方案1】:

我今天也遇到了同样的问题,并发现它是我的 ~/.ssh/known_hosts 文件中的一个令人反感的条目。

解决此问题的一种方法是将 ~/.ssh/known_hosts 移动到 ~/.ssh/known_hosts_test,然后在 MySQL Workbench 中再次尝试连接。

我发现我最近连接的一个主机给我留下了 MySQL 工作台不喜欢的 known_hosts 条目。日志中的错误消息与您的相同,只需杀死 known_hosts 中的最后几个条目即可为我解决问题。

干杯!

【讨论】:

  • 这也可能是一个问题,因为有多个 vagrant 实例及其 SSH 密钥存储为“localhost”并且在实例之间连接时不匹配。只是一个想法。
  • 这正是我的问题(多个实例)——有解决方法吗?
【解决方案2】:

这可能是由于底层 paramiko python 库不兼容,不支持服务器的更新密钥交换方法(即 ECDH)...

很遗憾,直到今天,MySQL-dev 还没有升级他们的库。

一种可能的解决方法是自己创建 ssh 隧道:

ssh -L 3306:localhost:3306 vagrant@33.33.33.15

然后通过 MySQL-Workbench 直接连接到localhost:3306

【讨论】:

  • MySQL Workbench 6.3.7 似乎支持更新的密码。就我而言,它运作良好。
猜你喜欢
  • 2015-02-15
  • 2017-07-06
  • 1970-01-01
  • 2015-01-19
  • 2015-08-18
  • 2015-12-17
  • 2013-11-03
  • 2020-07-09
  • 2011-10-30
相关资源
最近更新 更多