Я новичок в подключении к базе данных с 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 и начать с нуля. Что я хочу знать в следующий раз:
Любые идеи могли бы помочь многим. Спасибо!
--craig
Хорошо... это, похоже, сработало. Во-первых, я удалил 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')
Без проблем.