RMariaDB: ошибка caching_sha2_password при подключении к MySQL

0

Я новичок в подключении к базе данных с R (под Ubuntu 16.04), и у меня возникают проблемы. Следуя документации, которую я видел в Интернете, я попробовал что-то вроде этого:

con <- DBI::dbConnect(RMySQL::MySQL(),  
             dbname='IFsHistSeries',   
             host='127.0.0.1')

Это вызвало у меня сообщение об ошибке, которое гласило:

Failed to connect to database: Error: Can't initialize character set unknown (path: compiled_in)

Из того, что я смог найти с помощью Google, кажется, что RMariaDB более современен, чем RMySQL, поэтому я вместо этого сделал это:

con <- DBI::dbConnect(RMariaDB::MariaDB(),
             dbname='IFsHistSeries',
             host='127.0.0.1')

Это привело к тому, что сообщение с одинаковой критической ошибкой:

Failed to connect: Plugin caching_sha2_password could not be loaded: 

Итак, я попробовал что-то действительно глупое - установив MariaDB, используя инструкции на https://downloads.mariadb.org/mariadb/repositories/. Были некоторые проблемы с зависимостями, которым удалось полностью сломать MySQL, так что теперь ничего не работает вообще. Я планирую полностью удалить MySQL и MariaDB и начать с нуля. Что я хочу знать в следующий раз:

  • Нужно ли устанавливать MariaDB? Или обычный MySQL работает с RMariaDB? (Связь между двумя базами данных меня немного смущает.)
  • Нужно ли делать что-то особенное при настройке MySQL, чтобы убедиться, что плагин caching_sha2_password работает? Я волнуюсь, что это имеет какое-то отношение к тому, как я изначально установил пароль для моего пользователя root.

Любые идеи могли бы помочь многим. Спасибо!

--craig

Теги:
mariadb

1 ответ

0
Лучший ответ

Хорошо... это, похоже, сработало. Во-первых, я удалил MySQL и MariaDB и установил 8.0.12 MySQL, используя загрузку с https://dev.mysql.com/downloads/mysql/, и выполнил инструкции на https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html.

Я удалил все мои драйверы и просто переустановил unixODBC sudo apt-get удалить unixodbc unixodbc-dev tdsodbc odbc-postgresql libmyodbc libsqliteodbc sudo apt-get install unixodbc unixodbc-dev

Когда я установил libmariadbclient-dev все пошло наперекосяк. Вместо этого я побежал

sudo apt-get install libmariadb-client-lgpl-dev

Это установило клиента MariaDB, не нарушая MySQL. Я действительно не знаю, какая разница между ними.

Чтобы избавиться от ошибки с caching_sha2_password плагина caching_sha2_password, мне нужно было изменить режим аутентификации по умолчанию при запуске сервера MySQL:

sudo ./mysqld_safe --user=mysql --default-authentication-plugin=mysql_native_password &

На этом этапе я мог бы запустить

con <- dbConnect(RMariaDB::MariaDB(),
                 host='127.0.0.1',
                 user='root',
                 password='password')

Без проблем.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню