Mysql-workbench没有通过ssh连接到vagrant框中的mysql

时间:2015-12-27 16:30:17

标签: mysql ssh vagrant virtual-machine rdbms

我已经在SO中尝试了所有可用的解决方案,但这仍在继续。我正在尝试将Workbench连接到安装在流浪盒中的Mysql。主机和客户都是Ubuntu 14.04。附件是截图。 enter image description here

现在出现错误:

enter image description here

enter image description here

日志如下

22:08:59 [INF][     SSH tunnel]: Existing SSH tunnel not found, opening new one
22:08:59 [INF][     SSH tunnel]: Opening SSH tunnel to 127.0.0.1:2222
22:08:59 [ERR][sshtunnel.py:notify_exception_error:233]: Traceback (most recent call last):
  File "/usr/share/mysql-workbench/sshtunnel.py", line 298, in _connect_ssh
    look_for_keys=has_key, allow_agent=has_key)
  File "/usr/lib/mysql-workbench/modules/paramiko/client.py", line 307, in connect
    look_for_keys, gss_auth, gss_kex, gss_deleg_creds, gss_host)
  File "/usr/lib/mysql-workbench/modules/paramiko/client.py", line 519, in _auth
    raise saved_exception
AuthenticationException: Authentication failed.

22:09:00 [ERR][     SSH tunnel]: Authentication error opening SSH tunnel: Authentication error. Please check that your username and password are correct and try again.
Details (Original exception message):
Authentication failed, please check credentials.
Please refer to logs for details

2 个答案:

答案 0 :(得分:0)

这是一个棘手的问题,但我根据自己的经验做了一些建议。首先,当连接到另一台主机上的MySQL时,ssh是不必要的,因为通常通过端口3306进行连接。其次,我给你的Vagrant机器一个static private IP address,你可以在连接时使用主机。第三,我只是成功地以root身份连接(不确定原因),但看起来你已经这样做了。最后,默认情况下,MySQL只接受来自localhost的连接,在你的情况下,它是Vagrant机器。在Vagrant机器上的/etc/my.cnf中编辑此行...

bind-address = 127.0.0.1

...并将其更改为......

bind-address = 192.168.0.1

这是来自Vagrant机器的主机IP。或者,您可以将其更改为0.0.0.0或只是注释该行以允许来自任何地方的连接。确保在编辑文件后重新启动MySQL,然后再次尝试连接。

答案 1 :(得分:0)

我得到了同样的错误,这也让我疯了。然后我意识到我已将SSH服务器更改为其他端口。

当SSH服务器拒绝连接时,这必须是MySQL工作台显示的错误。

使用Vagrant我建议您确保可以从同一客户端或工作台SSH连接到该端口,但无法将其用作跳转框。