Как подключить R к MySQL? Не удалось подключиться к базе данных: Ошибка: не удалось загрузить плагин caching_sha2_password.

Недавно я установил MySQL на свой компьютер и пытаюсь подключить RStudio к MySQL. Я следовал инструкциям в книге, а также инструкциям здесь. Однако всякий раз, когда я использую 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

Например, я могу войти в MySQL с помощью командной строки в Windows.

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)

person Phil    schedule 08.01.2019    source источник


Ответы (2)


Библиотека R mysql зависит от libmysqlclient/libmariadbclient. Отсутствующий пароль caching_sha2_password, по-видимому, указывает на то, что не установлена ​​старая версия mysqlclient или libmariadbclient. Только совсем недавно caching_sha2_password был добавлен в mariadb (3.0.8).

Альтернативный вариант, например этот ответ , заключается в изменении пользователя в 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

person danblack    schedule 08.01.2019
comment
Теперь, когда исправлена ​​ошибка Ubuntu 1913676, сторона Linux должна решить для всех (кроме Ubuntu-18.04, которая слишком старая). Подключение Windows R к MySQL-8.0 все еще проблема. - person danblack; 29.07.2021

Шаг 1: ОТКРЫТЬ командный клиент mySql 8.0

Шаг 2: Чтобы вывести список всех пользователей в базе данных, введите команду select host,user from mysql.user;

Шаг 3. Теперь сбросьте текущий пароль пользователя,
set password for 'root'@'localhost'='yourpassword';

Шаг 3: Последний шаг

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword'; Запрос выполнен успешно, затронуто 0 строк (0,12 сек.)

person Aprende con Wilson    schedule 06.04.2020