1

我正在运行 Sequel Pro 0.9.9.1 并且可以连接到托管在仅允许 SSH 连接的服务器上的远程 mySQL (v 14.14) 数据库。当我通过 Sequel Pro 连接时,我只需要填写 ssh 用户和密码即可正常连接。我能够以这种方式访问​​所有数据库。

然后我尝试使用 RMySQL (0.9-3) 连接到 R (2.14.0) 中的数据库,但此命令失败:

conn <- dbConnect(MySQL(), user="ssh_user", password="ssh_password", host="localhost")

出现错误:“RS-DBI 驱动程序:(无法连接到数据库:错误:无法通过套接字'/tmp/mysql.sock'(2)连接到本地 MySQL 服务器”,无论我是否使用单引号(建议其他地方),将用户和/或密码更改为“root”或“”,或将“127.0.0.1”替换为“localhost”。如果我在 R 命令中将服务器主机替换为主机,则会被告知我无法访问服务器(这是真的,它被配置为只能通过 ssh 访问)。

以这种方式通过 Sequel Pro 连接到通过 ssh 访问的数据库的正确用户、密码和主机是什么?

4

1 回答 1

2

我从来没有这样做过,但我假设你可以使用 SSH 来隧道适当的端口,如下所述:http: //www.howtogeek.com/howto/ubuntu/access-your-mysql-server-remotely-over- ssh/ .

简而言之,您将:

  1. 通过 SSH 隧道连接适当的端口,对于 MySQL,默认情况下为 3306。
  2. 用于dbConnect()连接到 MySQL 服务器,就像它在本地计算机上一样。

这绕过了对 Sequel Pro 的需求。隧道本质上允许本地 3306 端口上的流量通过本地计算机和服务器之间的端口 22 上的 SSH 连接进行隧道传输,然后转发到服务器上本地的端口 3306。

于 2012-04-18T20:36:04.707 回答