Как выбрать версию MySQL при установке RMySQL в linux - PullRequest
0 голосов
/ 04 ноября 2019

Я запускаю приложение R в контейнере Docker и хотел бы подключиться к базе данных MySQL 8 с помощью библиотеки RMySQL. Я могу без проблем подключиться к базе данных из контейнера, используя команду терминала mysql, но когда я вызываю dbConnect() в моем R-скрипте, я получаю неизвестную ошибку соединения SSL (см. Ниже).

КакЯ использую те же сертификаты SSL с терминальной командой, что и в моем R-скрипте, он должен иметь отношение к версии MySQL, используемой RMySQL. Мне также нужно установить MySQL 5.7 в контейнер, так как некоторые другие пакеты R не могут быть собраны иначе. Однако, согласно приведенному ниже потоку, вы можете указать каталог версии MySQL, который будет использоваться при установке RMySQL:

не удается добавить пакет RMySQL в R (в Windows)?

Итак, я установил $MYSQL_HOME в /etc/R/Renviron.site и назвал install.packages('RMySQL',type='source').

Очевидно, вам также нужно скопировать некоторые файлы .lib и .dll, чтобы он работал в Windows, но где я могу найтиэквивалентные файлы в Linux?

Сценарий обработчика базы данных:

#' @import DBI
#' @import RMySQL

connectToDatabase <- function(myproject.db_config) {
  dbConfig <- read.properties(myproject.db_config)
  print(dbConfig)

  dbHandle <- dbConnect(
    MySQL(),
    dbname = dbConfig$databaseName,
    host = dbConfig$host,
    port = as.integer(dbConfig$port),
    user = dbConfig$user,
    password = dbConfig$password
  )
  return(dbHandle)
}

Файл конфигурации передан команде read.properties():

host=domain.subdomain.de
port=3306
user=john.doe
password=mypassword
databaseName=my_db
ssl-ca=/staging/mysql-ssl/ca.pem
ssl-cert=/staging/mysql-ssl/client-cert.pem
ssl-key=/staging/mysql-ssl/client-key.pem

Сообщение об ошибке в R:

Ошибка в connection_create (хост, имя пользователя, пароль, имя базы данных, as.integer (порт),: не удалось подключиться: ошибка соединения SSL: неизвестный номер ошибки

...