Я начинаю учиться использовать MySQL и, более конкретно, я пытаюсь научиться подключаться и взаимодействовать с Access и R. Недавно я создал odbc, соединяющий Access с R. Я успешно использовал библиотеки R для его извлечения и использовать sql запросы. Поэтому я перешел на R + Mysql. Здесь начинается моя проблема! После установки RODBC я установил RMySQL и попытался использовать "dbConnect". Вот мой код:
con <- dbConnect(dbDriver("MySQL"), user = "root", password = "mypwd", dbname = "mydbname")
где "mypwd" - это пароль, который я вставил при создании драйвера MySQL ODBC Unicode Driver, а "mydbname" - это имя базы данных, к которой я подключился. Просто ради информации, я уже протестировал этот odbc, перенеся таблицы из Access и Mysql. Так что мои сомнения связаны только со связью между Mysql и R.
Итак, давайте посмотрим мою ошибку при запуске строки кода выше:
Error in .local(drv, ...) :
Failed to connect to database: Error: Plugin caching_sha2_password could not be loaded
Я уже читал другие посты о необходимости изменить плагин Preferred Authentication. Я нашел этот код строки в качестве решения:
ALTER USER user
IDENTIFIED WITH mysql_native_password
BY 'password';
Итак.... пожалуйста, скажите мне, если я должен изменить эту строку кода на:
ALTER USER root
IDENTIFIED WITH mysql_native_password
BY 'mypwd';
Это правильно? Или я полностью упустил суть. Извините за мой вопрос, но, как я уже сказал, я совершенно новичок. Спасибо тебе за твое терпение
Где ваш адрес хоста?
Попробуйте код примерно так
con <- dbConnect(dbDriver("MySQL"), host="192.100.XX.XX",db="df", user="root", password="mypwd")
Хорошо, кажется, я нашел обходной путь для моей проблемы.
Вместо использования "dbConnect" я использовал "odbcConnect". Вот мой рабочий код:
channel <- odbcConnect("Myodbcname", uid="root")
df <- sqlQuery(channel, "SELECT * from mytable", as.is = TRUE)
"Myodbcname" - это имя, которое я сохранил для своего имени DSN и системы DSN. Итак, теперь я могу использовать свои sql запросы к моей таблице и работать над ней.
На данный момент мне нужно понять разницу между функцией "odbcConnect" и "dbConnect". Потому что, если мне не нужно последнее, я могу проигнорировать на данный момент. Может быть, я должен открыть новую тему со ссылкой на этот. Не уверен, что Stackoverflow предпочитает мне делать.