[英]Accessing a MySQL database in R (RStudio) after tunneling via SSH
從“終端”,我可以輕松地SSH到服務器,然后輸入MySQL提示符並運行所需的查詢。
但是,我無法在RStudio中執行后面的任務。
我試過的代碼是:
> system('ssh -f <server_user>@<server_ip> -N sleep 20')
> db <- dbConnect(MySQL(), host="hostname", user="username", pwd="password", dbname="databasename", port=3306)
> sql1 <- paste("SELECT * FROM databasename.tablename", sep="")
> results <- dbGetQuery(con, sql1)
> dbDisconnect(con)
從ps -A | grep ssh
可以看到ps -A | grep ssh
ps -A | grep ssh
表示ssh進程正在運行(我希望它運行20秒鍾),並且在R中正常執行的命令(不等待更多輸入),我無法連接到相關的數據庫。 錯誤消息是“無法連接”的結果,RStudio掛起至少一分鍾,然后出現錯誤。
一(1)如何將SSH與(2)遠程服務器上的MySQL結合使用以(3)將表直接加載到R數據幀中?
謝謝。
您應該使用稱為端口轉發的東西。 一些詳細信息在這里( https://help.ubuntu.com/community/SSH/OpenSSH/PortForwarding )例如,假設您想使用SSH隧道從筆記本電腦連接到http://www.ubuntuforums.org 。 您將使用源端口號8080(備用http端口),目標端口80(http端口)和目標服務器www.ubuntuforums.org。 :
ssh -L 8080:www.ubuntuforums.org:80 <host>
其中<host>
應替換為筆記本電腦的名稱。
這是針對整個計算機完成的,因此您無需從r studio進行此操作。
偏離路線時,您需要將端口轉發到3036。但是,您需要在服務器上具有特殊特權。 因為在大多數主機上,您只能從localhost連接(例如,從php連接)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.