通过ssh隧道的RMySQL

问题描述:

我在OSX上使用RStudio,并有一个运行Ubuntu的本地虚拟机。我遇到了RMySQL连接到通过ssh在本地虚拟机上运行的mysql的问题。我曾尝试透过通过ssh隧道的RMySQL

ssh -L 3307:d.local.internal.com:3306 [email protected] 

,随后在R下面的转发端口3307

con <- dbConnect(RMySQL::MySQL(), host = "127.0.0.1", user = "root", password = "pass", port=3307) 

我仍然得到

Error in .local(drv, ...) : Failed to connect to database: Error: Can't connect to MySQL server on '127.0.0.1' (57) 

任何想法?我能够通过SequelPro使用相同的ssh和mysql凭证成功连接。

+0

尝试'telnet'到该主机上的端口,看看是否有效。 – Gopala

尝试 ssh -L 3307:localhost:3306 [email protected]

我敢打赌d.local.internal.com无法解析主机名d.local.internal.com,因为您可能没有在d.local.internal.com DNS条目d.local.internal.com使用的DNS服务器或者/ etc/hosts条目。

此外,您不需要将本地端口设置为3307,即可使用3306,前提是您的主机上的3306上没有任何内容正在侦听。