Подключение к базе данных MySQL с неизвестной базой данных RMySQL

Я пытаюсь подключиться к базе данных MySQL через RMySQL, но получаю следующую ошибку

"Error in .local(drv, ...) : 
  Failed to connect to database: Error: Unknown database 'XXX'"

У кого-нибудь была подобная проблема, и смог ли ее решить?

Бег

  • macOS High Sierra, версия 10.13.6
  • Рабочая среда MySQL 8.0
  • RStudio версии 1.1.453

Я сконструировал драйвер SQL следующим образом:

install.packages("RMySQL")
install.packages("dbConnect")
library(DBI)
library(dbConnect)

con <- dbConnect(RMySQL::MySQL(),
                 dbname = "xxx",
                 host = "xxx",
                 port = xxx, 
                 user = "xxx",
                 password = "xxx")

Я следил за курсом Филипа Шувенаарса «Импорт данных в R» (https://www.datacamp.com/courses/importing-data-in-r-part-1) и надеялся установить соединение с базой данных SQL и создать объект MySQLConnection для последующего выполнения SQL-запросов. изнутри R.

Проблема в том, что я застреваю в самом начале из-за невозможности подключения к базе данных. В MySQLworkbench скрипт открывается и отлично выглядит. Я в этом новичок, и мне интересно, может ли это иметь какое-то отношение к расположению самого файла базы данных? Следует ли мне сохранять его в определенной папке?

PS: Я прочитал здесь все темы RMySQL и не нашел решения; если я что-то пропустил, дайте мне знать. Это мой первый вопрос на этом форуме, и я очень благодарен сообществу здесь, но также беспокоюсь, что где-то что-то пропустил. Спасибо за помощь.


person AKMS    schedule 11.05.2019    source источник
comment
расположение файла базы данных не имеет смысла в контексте СУБД SQL. То есть, если где-то установлен MySQL (локально или в вашей сети), не имеет значения, где расположены файлы, если вы можете связаться с хостом, на котором работает сервер.   -  person r2evans    schedule 12.05.2019
comment
Спасибо за это, r2evans. Что в этом случае указывает ошибка: неизвестная база данных "XXX"? то есть вы понимаете, в чем заключается основная проблема? У меня установлены MySQL и рабочая среда, и я могу открыть файл SQL в последнем, но когда я пытаюсь подключиться к файлу через R, он дает мне это конкретное сообщение об ошибке.   -  person AKMS    schedule 12.05.2019
comment
Странно, если я посмотрю на источник для RMySQL::dbConnect справочная страница, она ссылается на dbname= (правильный) и username= (другой). Я не использую MySQL, поэтому я не могу там помочь, но в целом неизвестная база данных предполагает, что вы подключаетесь к СУБД (ура!) И, возможно, даже аутентифицируетесь (ура снова!), Но ваше предположение о наличии базы данных неверно . Возможно, база данных недоступна для вашего пользователя, я не знаю.   -  person r2evans    schedule 12.05.2019
comment
Я думаю, вы что-то заметили - я получаю сообщение об ошибке Ошибка в .local (drv, ...): Не удалось подключиться к базе данных: Ошибка: доступ запрещен для пользователя XXX '@' localhost '(с использованием пароля: NO) когда я просто запускаю con ‹- dbConnect (RMySQL :: MySQL (), dbname = 311JapanTweets). У вас есть идеи, как изменить разрешения? У меня есть доступ к файлу SQL (который открывается как простая, но длинная таблица в textwrangler, а также MySQLWorkbench).   -  person AKMS    schedule 12.05.2019
comment
Я никогда не рассматривал возможность изменения чего-либо в каких-либо dbms (кроме sqlite), пытаясь изменить базовый файл db. Я не могу представить себе ситуацию, при которой это было бы безопасно. Вы не являетесь администратором базы данных или, по крайней мере, знаете кого-то, кто это делает? Единственный раз, когда я могу представить себе попытку обратного канала для изменения перманентности БД, - это судебная экспертиза и ее взлом.   -  person r2evans    schedule 12.05.2019
comment
Оказывается, у меня не было базы данных (вставьте смайлики facepalm). Как только я создал его и установил соответствующие разрешения, он работал как шарм.   -  person AKMS    schedule 12.05.2019


Ответы (1)


Решение. На самом деле у меня не было «базы данных» (или схемы, как они теперь называются в MySQL), а был просто файл .sql. Как только я создал базу данных из файла, все заработало как шарм!

Для других новичков, особенно в гуманитарных науках, это был очень полезный урок о том, как настроить MySQL с помощью R: https://programminghistorian.org/en/lessons/getting-started-with-mysql-using-r

person AKMS    schedule 12.05.2019