RMySQL 通过 ssh 隧道

Posted

技术标签:

【中文标题】RMySQL 通过 ssh 隧道【英文标题】:RMySQL via ssh tunnel 【发布时间】:2016-09-09 22:49:52 【问题描述】:

我在 OSX 上使用 RStudio,并且有一个运行 Ubuntu 的本地虚拟机。我在通过 ssh 连接到在本地 vm 上运行的 mysql 时遇到问题。我尝试通过

转发端口 3307
ssh -L 3307:d.local.internal.com:3306 ubuntu@d.local.internal.com

后面是r

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)

有什么想法吗?我可以使用相同的 ssh 和 mysql 凭据通过 SequelPro 成功连接。

【问题讨论】:

尝试telnet 到该主机上的该端口,看看是否有效。 【参考方案1】:

试试 ssh -L 3307:localhost:3306 ubuntu@d.local.internal.com

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

此外,您不需要将本地端口设置为 3307,您可以使用 3306,前提是您的主机上没有任何东西在监听 3306。

【讨论】:

以上是关于RMySQL 通过 ssh 隧道的主要内容,如果未能解决你的问题,请参考以下文章

通过 SSH 隧道访问端点

PyCharm SSH 隧道通过本地 ssh 配置 (~/.ssh/config)

DBeaver 通过 SSH 隧道连接

PostgreSQL 通过 SSH 隧道

PhpStorm XDebug 通过 ssh 隧道

通过 php 中的 ssh 连接隧道请求