Ошибка: 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 my.ini местоположение

Изменить набор символов 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.

https://cran.r-project.org/web/packages/RMariaDB/

У меня такой же 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.

Другие вопросы по тегам