ODBC + 远程通过SSH隧道连接MySQL

3

因此,我们需要通过ODBC连接到远程数据库。我按照在互联网上找到的指南操作。由于我的主机不允许直接连接,他们告诉我要创建一个SSH隧道,并使用PLink(Putty控制台)创建了一个隧道。

我甚至可以使用控制台登录到数据库(我有一张截图,但由于声望限制,我无法发布它)。

但是,当我尝试在ODBC驱动程序中设置MySQL Connector/ODBC数据源配置时,我遇到了问题。

[08S01]  [MySQL][ODBC 3.51 Driver]Lost connection to MySQL server at 
'reading initial communication packet', system error: 0

我的设置:

TCP/IP Server: localhost [I tried 127.0.0.1 with no result]
Port: 3307
User/Password: I use those which were successful in signing in through console 
Database: The list is empty so I cannot choose anything

使用以下命令启动plink:

Params := '-v -ssh -2 -P 22 -C -l ******** -pw ******* -L 3307:ssh.******.nichost.ru:22 ssh.******.nichost.ru';

所以端口应该没问题。 我不知道该怎么办,我在谷歌上搜索了东西和西方,但没有找到任何有用的信息 :( 请帮帮我。


你可以使用PKI密钥通过Putty进行SSH连接,同时在本地主机上可以通过命令行连接到MySQL。但是,当你尝试通过ODBC的SSH隧道再次使用相同的密钥进行登录时,却没有成功。 - Drew
1个回答

3
我不理解你的端口转发设置。你正在使用 -L 3307:ssh.******.nichost.ru:22,这使得你本地的3307端口表现得就像远程端口22一样;然而,端口22通常属于一个ssh服务器,而不是数据库服务器。
如果你的MySQL服务器在远程端口上监听3307端口,那么你需要使用 -L 3307:ssh.******.nichost.ru:3307 来通过本地的3307端口连接它。

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