Ошибка: R не может подключиться к MySQL
Вчера я обновил MySQL до последней версии 8.0.11 и попытался использовать RMySQL для подключения к MySQL, но он не работал, и я не смог найти никакого решения.
Мой код:
library(RMySQL)
con <- dbConnect(MySQL(), user="hello", password="hi", dbname = "webscrape", host="xx.xxx.xxx.xxx", port=xxxx)
Ошибка:
Error in .local(drv, ...) :
Failed to connect to database: Error: Can't initialize character set unknown (path: compiled_in)
3 ответа
Я решил эту проблему так:
Пользовательская Windows
1. Ошибка в.local(drv, ...): не удалось подключиться к базе данных: ошибка: невозможно инициализировать набор символов неизвестно (путь: compiled_in)
После добавления этих строк:
Путь файла: %PROGRAMDATA%\MySQL\MySQL Server X.X\my.ini
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
skip-character-set-client-handshake
[client]
default-character-set = utf8
[mysql]
default-character-set = utf8
2- Плагин аутентификации caching_sha2_password не может быть загружен
ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';
Рекомендации:
Изменить набор символов MySQL по умолчанию на UTF-8 в my.cnf?
Плагин аутентификации caching_sha2_password не может быть загружен
У меня также была эта проблема, и я заметил, что в MySQL 5.8, который был выпущен недавно, набор символов по умолчанию для соединений сервера и клиента теперь был установлен как utf8mb4 по умолчанию. С MySQL 5.7 набор символов по умолчанию был установлен в utf8.
Я попытался поиграться с наборами символов сервера и клиента, вернув значения до utf8, но я просто не смог заставить его работать, поэтому я вернул установленный MySql до 5.7. RMySQL работал потом после.
Такое ощущение, что RMySQL не может поддерживать utf8mb4 в данный момент и нуждается в обновлении.
Была такая же проблема. Пробовал менять наборы символов на схеме. Также попытался переустановить MySQL с помощью устаревшего метода аутентификации, но все еще не повезло с RMySQL.
Попробовал пакет RMariaDB и все заработало. Я бы переключился на RMariaDB, а не на MySQL.
У меня такой же Pb:
Error in .local(drv, ...) :
Failed to connect to database: Error: Can't initialize character set unknown (path: compiled_in)
Я пробую решение Хьюго (изменить my.ini), Дэвида Герина (используя RMariaDB), но оба не работают. После некоторых исследований и опыта это решение работает для меня
Изменить my.ini (это путь, чтобы найти C:\ProgramData\MySQL\MySQL Server 8.0
):
В отличие от ответа Гюго, вам нужно поставить utf8mb4 (utf8 не очень хороший)
[Клиент]
default-character-set = utf8 (the old line "utf" to "utfmb4")
default-character-set = utf8mb4 (the new line with modification)
[MySQL]
default-character-set = utf8 (the old line "utf" to "utfmb4")
default-character-set = utf8mb4 (the new line with modification)
[ТуздЫ]
character-set-client-handshake = FALSE (new line to add)
character-set-server = utf8mb4 (the old line "utf" to "utfmb4")
collation-server = utf8mb4_unicode_ci (new line to add)
skip-character-set-client-handshake (Line to remove)
В mysql вам нужно сменить пароль:
ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY 'mot-passe';
В связи с этой проблемой в этом посте можно найти одно решение, которое не позволит вам изменить предпочитаемую библиотеку R и / или понизить версию MySQL.
Вам просто нужно изменить настройки my.cnf.