Подключиться к базе данных MySQL с помощью RMySQL

Я делаю переход от RSQLite к RMySQL, и меня смущают поля user и password. FWIW, я использую Windows 7, R 2.12.2, MySQL 5.5 (все 64-разрядные) и RMySQL 0.7-5.

Я установил RMySQL, как указано в этом предыдущем вопросе SO, и насколько я знаю, что это работает (т.е. я могу загрузить пакет с library(RMySQL)). Но когда я пытаюсь запустить руководство из руководства по импорту данных R, я получаю сообщение об ошибке "не удалось подключиться к базе данных...". Это код из учебника из руководства:

library(RMySQL) # will load DBI as well
## open a connection to a MySQL database
con <- dbConnect(dbDriver("MySQL"), user = "root", password = "root", dbname = "pookas")
## list the tables in the database
dbListTables(con)
## load a data frame into the database, deleting any existing copy
data(USArrests)
dbWriteTable(con, "arrests", USArrests, overwrite = TRUE)
dbListTables(con)
## get the whole table
dbReadTable(con, "arrests")
## Select from the loaded table
dbGetQuery(con, paste("select row_names, Murder from arrests",
                      "where Rape > 30 order by Murder"))
dbRemoveTable(con, "arrests")
dbDisconnect(con)

Во второй строке я получаю следующую ошибку:

> con <- dbConnect(dbDriver("MySQL"), user = "richard", password = "root", dbname = "pookas")
Error in mysqlNewConnection(drv, ...) : 
  RS-DBI driver: (Failed to connect to database: Error: Access denied for user 'richard'@'localhost' (using password: NO)
)

Я пробовал с user и password и без них, а также с admin как user. Я также пытался использовать dbname, который я сделал раньше, с командной строкой и с несуществующим.

Какие-нибудь советы? Здесь есть хорошая ссылка? Спасибо!


person Richard Herron    schedule 25.03.2011    source источник


Ответы (3)


Скорее всего, это проблема с настройкой на стороне сервера. Убедитесь, что сетевой доступ включен.

Кроме того, локальный тест с клиентом командной строки не эквивалентен тому, что обычно используются сокеты. Журналы сервера mysql могут быть полезны.

person Dirk Eddelbuettel    schedule 25.03.2011
comment
Я прошел все настройки, и все выглядело хорошо. Я попробовал одинарные кавычки вместо двойных, и это сработало! Я всегда думал, что они взаимозаменяемы. Спасибо за указатели! - person Richard Herron; 25.03.2011

Сначала попробуйте подключиться к серверу MySQL с помощью MySQL Workbench или командной строки mysql, используя тот же параметр. Если он соединяется, R также должен иметь возможность подключиться.

Обычно эта проблема возникает, когда сервер MySQL не разрешает подключения с удаленных компьютеров.

person adisat    schedule 21.02.2012
comment
Любая идея, почему я ДОЛЖЕН быть в состоянии подключиться к удаленной базе данных с помощью MySQL Workbench, но не могу подключиться к R? Если я отключу брандмауэр на удаленном сервере, я смогу подключиться к R, однако с включенным брандмауэром он не разрешает подключение. Я не могу понять, почему с включенным брандмауэром он разрешает соединение с MySQL, но не с R. - person Michael MacDonald; 07.04.2021

Как вам сказали, вы можете попробовать подключиться к хосту с помощью другого приложения в качестве рабочего места mysql. Как странно! Когда я попытался в RStudio подключиться к моей базе данных с помощью вашего кода без указания хоста в команде, я не смог подключиться.

Мне нужно было указать хост ( host = 'localhost' ) в команде.

person calejero    schedule 18.04.2013