R Mysql dbconnect参数

时间:2016-12-07 14:14:37

标签: mysql r

我正在运行一个使用 RMySQL 包连接到 MySQL数据库的R程序,一切运行良好。但现在我想通过 RSCRIPT 运行相同的程序,并希望传递连接参数,就像这样

config.xml

但它不起作用,我收到一条消息:

  

"错误(函数(classes,fdef,mtable):无法找到   用于签名的函数'dbConnect'的继承方法   “"字符"”"

我该怎么办?

1 个答案:

答案 0 :(得分:3)

如错误消息所示,您尝试通过向其传递字符向量来连接到数据库。那不会起作用。

一种选择是在脚本中使用正确的语法:

library(RMySQL)
mysqlconnection <- dbConnect(RMySQL::MySQL(),
                            user = 'root',
                            password = '',
                            dbname = 'nepal_statgri',
                            host = 'localhost')

但是,你提到使用Rscript。所以我的理解是,你有兴趣拥有一个不存储连接细节的R文件,而是想要从shell终端传递这些细节作为参数。

执行此操作的一个选项是使用允许您轻松为R脚本创建命令行界面的程序包docopt。例如,如果将以下内容保存在名为connect_mysql.R的文件中:

'usage: connect_mysql.R [--user <user> --password <pwd> --db <database> --host <host>]

options:
  --user username
  --password password
  --db database
  --host host
' -> doc

library(docopt)
library(RMySQL)

opts <- docopt(doc)

con <- dbConnect(RMySQL::MySQL(),
          username = opts$user,
          password = opts$password,
          dbname  = opts$db,
          host  = opts$host)
dbListTables(con)
dbDisconnect(con)

然后您可以使用Rscript调用它并传递您的连接详细信息:

Rscript connect_mysql.R --user root --password password --db nepal_statgri --host localhost