Я пытаюсь подключиться к MySQL из R. Я установил "8.0.11 MySQL Community Server - GPL" на свою машину. В студии R я установил библиотеку RMySQL.
Когда я даю команду:
con = dbConnect(RMySQL::MySQL(),user="root", password = "password", dbname="test")
Я продолжаю получать ошибку:
Ошибка в.local(drv,...): Не удалось подключиться к базе данных: Ошибка: Неизвестная база данных 'test'
Я не уверен, почему он продолжает давать эту ошибку. Какие-либо предложения?
Очевидной причиной может быть "Надеюсь", что вы не указали 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 как наилучшую практику безопасности соединений с БД.
Вот код, который я использую для доступа к 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".