Diz*_*ley 49 mysql mysql-workbench
我无法从 PC 在 MySQL Workbench 中使用 TCP/IP 通过 SSH 连接进行连接。这是怎么回事?
我在 Ubuntu 服务器mysql.myhost.com上创建了一个 MySQL 5.1 数据库。我可以在本地访问它。MySQL Workbench (PC) 提供通过 ssh 通过 TCP 建立连接。它在命令行 mysql 工作正常的远程服务器上的端口 3306 上运行。
我使用了以下会话详细信息:
当我尝试连接时收到一条错误消息:“无法使用 root 用户通过 mysql.myhost.com 上的 SSH 隧道在 127.0.0.1:3306 连接到 MySQL”
“无法连接到 '127.0.0.1' (10061) 上的 MySQL 服务器”
作为另一个测试 - 我使用 Putty 设置了一个端口为 3306 的 SSH 隧道,我可以使用 MySQL Workbench 通过该隧道连接 OK,该隧道将连接到我的本地 3306 的连接转发到远程服务器,如上所述。但是我无法在 Workbench 中使用“TCP/IP over SSH”。
次要问题:当 Workbench 询问“SSH 公钥文件的路径”时,它真的不需要我的私钥文件吗?
Eye*_*Eye 35
当我自己遇到这个错误时,我偶然发现了这个问题。我终于可以弄清楚配置了。
最后,我在 MySQL WorkBench 中输入了以下内容。
剩下的唯一事情就是正确配置 SSH 服务器以使用密钥而不是密码。希望这会帮助某人。
您可能需要检查 mysql.user 表中的用户。
运行此查询:
SELECT user,host FROM mysql.user;
Run Code Online (Sandbox Code Playgroud)
您应该会看到如下内容:
mysql> SELECT user,host,password FROM mysql.user;
+------------------+-------------+-------------------------------------------+
| user | host | password |
+------------------+-------------+-------------------------------------------+
| root | localhost | *7A670E02260CDEEFF062DD08F3A6F6DA079998CB |
| ping | % | *124E1DB56CC8D6E2FEE8315BB2544BF04B980DB6 |
| admin | 10.67.135.% | 1a6858054a41fede |
| icorbin | 10.67.135.% | 366ed93a7396650e |
+------------------+-------------+-------------------------------------------+
4 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
请注意
如果您希望 root 通过 TCP/IP 连接,您必须为 root 用户指定 IP 地址或网络块。
像这样的东西:
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'whateverpassword';
Run Code Online (Sandbox Code Playgroud)
或者如果 root@localhost 的 root 密码相同,则
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY PASSWORD '*7A670E02260CDEEFF062DD08F3A6F6DA079998CB ';
Run Code Online (Sandbox Code Playgroud)
注意:通常不推荐 root@'%'。也许尝试 root@'10.%' 或任何其他用于 root 的网络块。
试一试 !!!
我认为 TCP/IP over SSH 方法的工作原理是在 MySQL 连接的基础上建立一个“正常”的 SSH 连接(-L与使用 OpenSSH 命令行客户端隧道使用的方式相同)。
因此,您需要在建立隧道的服务器上指定与 SSH 服务器的连接。在这里,您似乎正在使用mysql.myhost.com:3306,这意味着您正在端口 3306 上运行此 SSH 服务器(不是 MySQL)。
可以将 127.0.0.1:3306 上的 MySQL 服务器和mysql.myhost.com端口 3306上的外部 IP 地址上的 SSH 服务器绑定,但这不太可能。我猜您的 SSH 服务器正在侦听端口 22(默认)。
您可能应该使用mysql.myhost.com:22. (检查您是否也可以通过普通 SSH 客户端(例如 Putty)连接到它。)
| 归档时间: |
|
| 查看次数: |
215482 次 |
| 最近记录: |