SSH隧道使用RMySQL和RStudio

时间:2016-07-08 03:04:37

标签: mysql r ssh rstudio rmysql

我是使用Mac(OS X)与RStudio的R新手。

我成功使用续集专业版来查看这样的数据库。

enter image description here

我将dbConnect与RMySQL和DBI(下面的代码)与RStudio一起使用。

library(DBI)
library(RMySQL)
con <-  dbConnect(RMySQL::MySQL(), 
              username = "username",
              password = "password",
              host = "hostname-xxx.ap-northeast-1.rds.amazonaws.com",
              port = 3306, 
              dbname = "dbname"
)

但是我有以下错误。

Error in .local(drv, ...)
  Failed to connect to database: Error: Access denied for user 'username'@'yyyyyyyyyyymarunouchi.tokyo.ocn.ne.jp' (using password: YES)

所以使用终端这样的ssh隧道。

ssh -f sshuser@xx.xxx.xx.xx -i ~/.ssh/ssh_key -L 3306:hostname-xxx.ap-northeast-1.rds.amazonaws.com:3306 -N

并成功登录。

之后,为了确认,执行下面的命令(在终端中)但在输入正确的密码后失败。

mysql -h 127.0.0.1 -p -u username dbname

错误代码

ERROR 1044 (42000): Access denied for user 'username'@'localhost' to database 'dbname'

(其他具有相同用户名的机器成功登录。我不知道为什么......)

和dbConnect(带有RStudio的RMySQL)显示相同的错误。

任何相同的情况?请告诉我该怎么做。

谢谢。

1 个答案:

答案 0 :(得分:0)

这只是数据库凭据的问题。您需要在DBMS中设置一个用户,该用户有权访问您登录的数据库,然后使用该帐户+密码登录。这可能与您用于登录服务器的帐户不同。

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
FLUSH PRIVILEGES;

如果这给您带来任何麻烦,那么不要一次授予ALL PRIVILEGES每个权限。这种情况很少发生,尤其是对于像Hive这样的其他数据库。