Подключение к MySQL из R - PullRequest
0 голосов
/ 26 мая 2018

Я пытаюсь подключиться к MySQL от R. Я установил «8.0.11 MySQL Community Server - GPL» на моей машине.В R studio я установил библиотеку RMySQL.

Когда я даю команду:

con = dbConnect(RMySQL::MySQL(),user="root", password = "password", dbname="test")

Я получаю сообщение об ошибке:

Ошибка в .local(drv, ...): Не удалось подключиться к базе данных: Ошибка: неизвестная база данных 'test'

Я не уверен, почему она продолжает выдавать эту ошибку.Есть предложения?

Ответы [ 2 ]

0 голосов
/ 26 мая 2018

Вот код, который я использую для доступа к MySQL от R

# 1. Library
library(RMySQL)

# 2. Settings
db_user <- 'your_name'
db_password <- 'your_password'
db_name <- 'database_name'
db_table <- 'your_data_table'
db_host <- '127.0.0.1' # for local access
db_port <- 3306

# 3. Read data from db
mydb <-  dbConnect(MySQL(), user = db_user, password = db_password,
                 dbname = db_name, host = db_host, port = db_port)
s <- paste0("select * from ", db_table)
rs <- dbSendQuery(mydb, s)
df <-  fetch(rs, n = -1)
on.exit(dbDisconnect(mydb))

Пожалуйста, проверьте, как он работает на вашей стороне.

PS.Похоже, вы пропустили параметр 'db_table'.

0 голосов
/ 26 мая 2018

Очевидной причиной может быть "Я надеюсь", потому что вы не указали IP-адрес хоста.Также я предпочитаю использовать pool пакет.Тогда ваш вызов соединения может быть

library(DBI)
library(RMySQL)
library(pool)

pool <- dbPool(
                  drv = RMySQL::MySQL(),
                  dbname = "db_name",
                  host = "127.0.0.1",
                  username = 'user_name',
                  password = 'password',
                  port = 3306
             )

 onStop(function() {
           poolClose(pool)
         })

Еще одна вещь, лучше определить пользователя с соответствующими привилегиями для тестовой БД и использовать этого пользователя в вызове соединения вместо root в качестве наилучшей практики обеспечения безопасности соединения с БД.

...