gpt4 book ai didi

SSH 远程隧道中的 MYSQL ERROR 2003 (HY000) (113),但来自 SSH 隧道的 telnet 有效

转载 作者:太空宇宙 更新时间:2023-11-04 12:54:49 25 4
gpt4 key购买 nike

我花了一整天的时间试图解决这个问题。我想做的是:我有一个MYSQL服务器,即CentOS 7的A,在私有(private)网络中,无法NAT或连接VPN。现在我想从一台远程机器(即装有 CentOS 6 的 B)访问这台服务器。我可以通过 ssh 远程访问机器 B,并通过 ssh 访问本地机器 A。

我尝试的这种方法是使用 SSH 隧道。在机器A终端上:

ssh -R 9001:localhost:3306 user@B

然后在B上,我试过了

mysql --port=9001 -u root -p

给出

ERROR 2003 (HY000): Can't connect to MySQL server on 'mysql-server-1' (113)

首先我认为它可能是防火墙或特权,但后来我将 A 物理连接到具有地址的公共(public)网络,比如 C,这是与 B 不同的网络,我可以直接从 B 简单地使用

mysql -hC -u root -p

而且它没有任何问题。

回到隧道,从 A 到 B 的 SSH 隧道后,我尝试远程登录

ssh -R 9001:localhost:3306 user@B
telnet localhost 9001

这给了我

Trying ::1...
Connected to localhost.
Escape character is '^]'.
V
5.5.44-MariaDB-log)Gjb+N'u��;cbDkng;1!RXmysql_native_passwordConnection closed by foreign host.
-bash-4.1$

这似乎是件好事,但我还是得到了 2003 错误。

想过这个吗?也许还有其他方法可以解决这个问题?

附言我已经测试了所有我能找到的答案,并且 SSH 隧道与其他程序的套接字配合得很好。

最佳答案

确保您尝试通过 VPN 访问 mysql 的本地计算机的 IP 地址具有访问数据库的权限。

mysql> select host,user,password from mysql.user;
+------+------+-------------------------------------------+
| host | user | password |
+------+------+-------------------------------------------+
| % | abcd | *9B3E7610FB431631340BD618E58D49DF1928A251 |
| % | sync | *1747319F3F87039C382597515F8742920D9B75D1 |
| % | root | *FAAFFE644E901CFAFAEC7562415E5FAEC243B8B2 |
+------+------+-------------------------------------------+

确保登录用户的本地计算机 IP 地址条目。您也可以在主机字段中使用 %。 % 表示所有用户。

可以通过以下命令添加权限

mysql> grant all on *.* to 'root'@'%' identified by <password>.
mysql> flush privileges

关于SSH 远程隧道中的 MYSQL ERROR 2003 (HY000) (113),但来自 SSH 隧道的 telnet 有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36075336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com