Ошибка RMySQL при подключении к базе данных Mysql

0

Я начинаю учиться использовать 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';

Это правильно? Или я полностью упустил суть. Извините за мой вопрос, но, как я уже сказал, я совершенно новичок. Спасибо тебе за твое терпение

  • 0
    Да, вы пробовали с «mypwd»? Это должно решить проблему.
  • 0
    Нет, я задал вопрос, прежде чем «изменить» мой пароль аутентификации. В шортах я еще не написал строку кода «Изменить пользователя ......». Итак, вы подтвердите, что я могу открыть Mysql и написать приведенный выше строчный код?
Теги:

2 ответа

0

Где ваш адрес хоста?

Попробуйте код примерно так

con <- dbConnect(dbDriver("MySQL"), host="192.100.XX.XX",db="df", user="root", password="mypwd")
  • 0
    Я использую «localhost», так как я сохранил его при создании драйвера odbc Mysql.
  • 0
    Затем замените host = "localhost"
Показать ещё 1 комментарий
0

Хорошо, кажется, я нашел обходной путь для моей проблемы.

Вместо использования "dbConnect" я использовал "odbcConnect". Вот мой рабочий код:

channel <- odbcConnect("Myodbcname", uid="root")
df <- sqlQuery(channel, "SELECT * from mytable", as.is = TRUE)

"Myodbcname" - это имя, которое я сохранил для своего имени DSN и системы DSN. Итак, теперь я могу использовать свои sql запросы к моей таблице и работать над ней.

На данный момент мне нужно понять разницу между функцией "odbcConnect" и "dbConnect". Потому что, если мне не нужно последнее, я могу проигнорировать на данный момент. Может быть, я должен открыть новую тему со ссылкой на этот. Не уверен, что Stackoverflow предпочитает мне делать.

Ещё вопросы

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