[英]SSH Tunnel with R error: Failed to connect to database: Error: Can't connect to MySQL server on '127.0.0.1' (115)
[英]R SSH tunnel to MySQL database via Shiny App Access Denied or Can't connect to MySQL server on '127.0.0.1'
我已經瀏覽了其他帖子但沒有成功,所以我們到了。 以下代碼片段在 RStudio 中的 Windows 10 筆記本電腦上按預期運行。
library(RMySQL)
library(ssh)
library(callr)
rs <- r_session$new(wait = TRUE, wait_timeout = 3500)
rs$call(function(){
session <- ssh::ssh_connect('<ssh-user>@<remote-ip-address>', keyfile = "<path-to-.pem-file>", verbose = FALSE)
ssh::ssh_tunnel(session, port=3306, target = "127.0.0.1:3306")
})
# Connect to TRAQ DB.
Sys.sleep(1)
db-connection <- dbConnect(MySQL(), user = '<remote-user-name>', password = '<remote-password>', dbname = '<remote-database>', port=3306, host='127.0.0.1')
當 dbConnect() 具有 host='localhost' 時,該代碼段也會成功運行
我正在嘗試在 R shiny 應用程序中運行 Ubuntu 22 的虛擬機上運行該片段。 我在嘗試加載應用程序時收到以下消息
使用本地主機:
ERROR 1044 (42000): Access denied for user '<remote-user-name>'@'localhost'
使用 127.0.0.1:
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)
我也收到了(115)錯誤代碼。
如果直接從 R 終端運行,則必須將代碼段修改如下才能成功。
ssh::ssh_tunnel(session, port=3306, target = "127.0.0.1:3306")
至
ssh::ssh_tunnel(session, port=3307, target = "127.0.0.1:3306")
和
db-connection <- dbConnect(MySQL(), user = '<remote-user-name>', password = '<remote-password>', dbname = '<remote-database>', port=3306, host='127.0.0.1')
至
db-connection <- dbConnect(MySQL(), user = '<remote-user-name>', password = '<remote-password>', dbname = '<remote-database>', port=3307, host='127.0.0.1')
如果主機設置為“localhost”或端口保留為 3306,則會顯示拒絕訪問消息。
不清楚這是由於 MySQL 差異還是操作系統差異造成的。 我不認為這是通過 SSH 連接到的遠程服務器上的問題,因為它可以在 Windows 筆記本電腦上運行。
select 用戶,主機來自 mysql.user; 檢查您的合法用戶名和主機並替換它。 另外,127.0.0.1 和 localhost 是有區別的。 您應該注意/etc/hosts 文件是否被映射。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.