无法从MySQL Workbench建立远程连接

3
我正在尝试从Windows 10连接到Ubuntu 14.04。我正在使用ssh。 连接似乎已经成功登录到机器上,但无法连接到数据库。我知道我使用的是正确的密码。 错误信息为:
Failed to connect to MYSQL at localhost:3306 through SSH tunnel at username@xx.xx.xx.xx with user xxxx 
Unable to establish SSL connection 

日志显示:
12:27:02 [INF][ SSH tunnel]: Existing SSH tunnel not found, opening new one 
12:27:06 [INF][ SSH tunnel]: Opening SSH tunnel to xx.xx.xx.xx:22 
12:27:08 [INF][ SSH tunnel]: TunnelManager.wait_connection returned OK 
12:27:08 [INF][sshtunnel.py:set_keepalive:502]: SSH KeepAlive setting skipped. 
12:27:08 [INF][ SSH tunnel]: SSH tunnel connect executed OK

我正在连接的用户是按以下方式创建的:
mysql> create database fred 
mysql> CREATE USER 'fred'@'localhost' IDENTIFIED BY 'xxxx'; 
mysql> CREATE USER 'fred'@'%' IDENTIFIED BY 'xxx'; 
mysql> grant all privileges on fred.* to 'fred'@'x'; 
mysql> grant all privileges on fred.* to 'fred@'%' 

我可以这样从远程的Ubuntu机器连接:
mysql --user=fred --host=xx.xx.xx.xx --port=3306 -p

/var/log/mysql中没有提到连接

/var/log/auth显示

Dec  7 14:03:46 www.example.com sshd[14474]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key
Dec  7 14:03:47 www.example.com sshd[14474]: Accepted publickey for root from xx.xx.xx.xx port 53591 ssh2: RSA ...
Dec  7 14:03:47 www.example.com sshd[14474]: pam_unix(sshd:session): session opened for user root by (uid=0)

SSH连接是使用root用户,但我尝试了使用非root用户,结果没有任何区别。

以下是连接选项卡中的详细信息:

SSH Hostname: xx.xx.xx.xx
SSH Username root
SSH KeyFile: [dir]\.ssh\id_rsa
MySQL Hostname:localhost
MySQL Server Port: 3306
username: xxxx

1
你能展示一下你如何在ssh中配置隧道吗?请再次确认你已经设置好了从本地端口3306到远程端口3306的隧道。 - O. Jones
我除了在MySQL Workbench连接页面中设置的细节之外,没有设置任何其他内容。我认为它会负责设置隧道。连接明显是与服务器建立的。问题似乎出现在此后发生的事情上。我已经编辑了问题,包括我在连接页面中拥有的详细信息。 - user3185563
2个回答

5
仔细查看错误信息。它说SSL连接无法建立,没有提到SSH。因此,我猜测MySQL Workbench设置了使用SSL加密进行连接,而服务器不支持。您可以在连接设置中更改这个选项:

enter image description here

或者,您可以使用 SSL 向导(也可从此页面获取)生成 SSL 证书以进行正确的 SSL 连接。

好消息:从服务器 5.7.9 开始,默认启用 SSL,并且服务器和客户端软件会自动设置 SSL 详细信息。MySQL Workbench 当然也能与之配合使用。


0

我认为你的问题是正确配置SSH服务器以使用密钥而不是密码。请检查其配置文件/etc/ssh/sshd_config,并将负责TCP转发的参数从no更改为yes,即AllowTcpForwarding yes。


1
sshd_config中没有AllowTcpForwarding的条目。我添加了它并重新启动了ssh,但仍然出现相同的错误。 - user3185563
我的sshd_config文件中没有AllowTcpForwarding选项,这是有问题吗? - devansvd

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