如何将r连接到mysql?无法连接到数据库:错误:无法加载插件缓存\u sha2 \u密码

t3irkdon  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(314)

我最近在我的电脑上安装了mysql,并试图将rstudio连接到mysql。我遵循一本书中的说明以及这里的说明。但是,每当我使用 dbConnect() 或者 src_mysqlRStudio ,我收到以下错误消息:

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)

jecbmhm3

jecbmhm31#

第一步:打开mysql 8.0命令客户端
第2步:要列出数据库中的所有用户,请键入命令, select host,user from mysql.user; 步骤3:现在将当前用户密码重置为, set password for 'root'@'localhost'='yourpassword'; 第三步:最后一步 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword'; 查询正常,0行受影响(0.12秒)

ghhaqwfi

ghhaqwfi2#

r mysql库依赖于libmysqlclient/libmariadbclient。丢失的caching\u sha2\u密码似乎表明没有安装旧的mysqlclient版本或libmariadbclient。直到最近,mariadb(3.0.8)才添加了缓存sha2\u密码
另一种方法,如下面的答案,是将mysql中的用户更改为使用不同的身份验证机制:
将用户设置回mysql\u native\u密码:

ALTER USER 'username'@'localhost'
IDENTIFIED WITH mysql_native_password BY 'password'

要将此设置为所有新创建用户的默认设置,请更改my.cnf/my.ini设置 default_authentication_plugin=mysql_native_password

相关问题