2012-04-18 177 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

相關問題