2012-04-18 175 views
1

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

我然后尝试连接到R中使用RMySQL(0.9-3)中的数据库(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访问的数据库的正确用户,密码和主机是什么?

回答

2

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

总之,你会:

  1. 隧道通过SSH相应的端口,默认是 3306为MySQL。
  2. 使用dbConnect()作为 连接到MySQL服务器,如果它在本地计算机上。

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

+0

当您使用公钥/私钥身份验证时特别好的解决方案。 – 2013-09-01 14:28:11

相关问题