使用RM中的RMySQL和.my.cnf文件连接到数据库

时间:2017-10-19 05:50:51

标签: mysql r rmysql

我正在尝试从R连接到我公司的MySQL数据库,但我不允许在我的代码中保留用户名和密码,因此我创建了一个.my.cnf文件。我的.my.cnf文件看起来像这样(密码,dbname和主机名已调整):

[dbname]
username = admin-read
port = 3306
password = mypassword
host = myhost.us-west-2.rds.amazonaws.com
datasets = dbname

然后我在R中运行以下代码(尝试)连接到数据库,并收到以下错误:

rmysql.settingsfile <- "~/.my.cnf"
rmysql.db <- "dbname"
drv <- dbDriver("MySQL")
con <- dbConnect(drv, default.file = rmysql.settingsfile, group = rmysql.db, user = NULL, password = NULL)

Error in .local(drv, ...) : 
Failed to connect to database: Error: Access denied for user 'myname'@'ec2-publicip.us-west-2.compute.amazonaws.com' (using password: YES)

这是一种痛苦,这是不行的。最初,我已经使用传递给dbConnect()函数的用户名和密码编写了我的代码,因此,连接到数据库工作正常:

my_connection <- dbConnect(
  MySQL(),
  user="admin-read",
  dbname="dbname",
  host="myhost.us-west-2.rds.amazonaws.com",
  password="mypassword"
)

......以这种方式连接工作正常。

任何有关错误的帮助,以及我如何解决这个问题,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

确保您的* .conf文件具有所有语法:

[wp]
user=wordpress
port=3306
password=xxxxxxxxxx
host=127.0.0.1
database=test