我想使用MySQL数据库,dplyr而无需将我的数据库密码存储在平面文本R代码中.因此,我更喜欢引用我的.my.cnf文件,但由于src_mysql具有主机,用户和密码的默认参数,我可以找到的唯一方法是通过相当优雅:
test_db <- src_mysql("test",
default.file=path.expand("~/.my.cnf"),
host=NULL,
user=NULL,
password=NULL)
Run Code Online (Sandbox Code Playgroud)
是否有一种不那么冗长的方式从dplyr存储凭证连接到MySQL数据库?
从Hadley对此拉取请求的响应(2014年2月,要求调整代码以允许读取 my.cnf)和Hadley(他建议使用my.cnf并且应该传递NULL值)的文档看来,传递NULL是期望的意图.
如果这很麻烦,请考虑.Rprofile使用以下内容在您的函数中创建一个函数:
src_mysql_from_cnf <- function(dbname,
dir="~/.my.cnf",
host=NULL,
user=NULL,
password=NULL,
...) {
if(!(file.exists(dir)))
stop(sprintf("No such file '%s'",dir))
dplyr::src_mysql(
dbname,
default.file=path.expand(dir),
# explicitly passing null unless otherwise specified.
host=host,
user=user,
password=password,
...)
}
Run Code Online (Sandbox Code Playgroud)
那么你可以
test_db <- src_mysql_from_cnf("test")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
509 次 |
| 最近记录: |