我需要从旧的MySQL服务器获取数据,并且在尝试使用RMySQL或DBI程序包连接时遇到以下错误:
Error in .local(drv, ...) :
Failed to connect to database: Error: Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)
在终端上,我必须使用'--secure_auth = false'选项才能连接到MySQL服务器,但我无法处理如何将它与RMySQL和DBI包一起使用。
阅读这些软件包文档,我发现在{cdmpConnect()函数中使用了default.file
arg。所以我创建了一个'.my.cnf'文件,其中'secure_auth = false'方向(遵循MySQL文档)。但是使用这个conf文件,dbConnect()函数崩溃了。
使用RJDBC软件包,我可以连接到该服务器,即使没有任何额外的选项来设置secure_auth。但我想使用RMySQL来做到这一点,因为我已经将它用于同一个脚本中的许多其他连接,并且因为RMySQL比RJDBC更新。
我的sessionInfo():
R version 3.3.1 (2016-06-21)
Platform: x86_64-redhat-linux-gnu (64-bit)
Running under: Red Hat Enterprise Linux
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] RJDBC_0.2-5 rJava_0.9-8 DT_0.1 reshape2_1.4.1 RAdwords_0.1.9
[6] RGA_0.4.2 highcharter_0.3.0 ggplot2_2.1.0 lubridate_1.5.6 dplyr_0.4.3
[11] gpbR_1.0 RMySQL_0.10.9 DBI_0.4-1