我最近在我的计算机上安装了MySQL,并试图将RStudio连接到MySQL。我按照书中的说明以及here的说明。但是,每当我在dbConnect()
中使用src_mysql
或RStudio
时,我都会收到以下错误消息:
Error in .local(drv, ...) :
Failed to connect to database: Error: Plugin caching_sha2_password could not be loaded: The specified module could not be found
例如,我可以使用Windows中的命令提示符登录MySQL
mysql -u username -p
并按如下方式创建数据库
CREATE DATABASE myDatabase;
然后在RStudio中:
library(RMySQL)
db <- dbConnect(MySQL(), dbname = "myDatabase", user = "username",
password = "password", host = "localhost")
我的回复始终是上面列出的错误消息。
如果你需要它:sessionInfo()
R version 3.5.2 (2018-12-20)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
R mysql库依赖于libmysqlclient / libmariadbclient。缺少的caching_sha2_password似乎表明未安装旧的mysqlclient版本或libmariadbclient。只有最近才做caching_sha2_password get added to mariadb (3.0.8)
像this answer这样的替代方法是更改mysql中的用户以使用不同的身份验证机制:
您将用户设置回mysql_native_password:
ALTER USER 'username'@'localhost'
IDENTIFIED WITH mysql_native_password BY 'password'
要使其成为所有新创建用户的默认设置,请更改my.cnf / my.ini设置default_authentication_plugin=mysql_native_password