【发布时间】:2020-02-29 20:45:27
【问题描述】:
我在 Docker 容器中运行 R 应用程序,并希望使用 RMySQL 库连接到 MySQL 8 数据库。我可以使用 mysql 终端命令从容器连接到数据库,没有任何问题,但是当我在 R 脚本中调用 dbConnect() 时,我得到一个未知的 SSL 连接错误(见下文)。
由于我在终端命令以及我的 R 脚本中使用相同的 SSL 证书,它必须与 RMySQL 使用的 MySQL 版本有关。我也需要在容器中安装 MySQL 5.7,否则无法构建其他一些 R 包。但是,根据下面的线程,您可以指定安装RMySQL时要使用的MySQL版本的目录:
adding RMySQL package to R fails (on Windows)?
所以我在/etc/R/Renviron.site 中设置了$MYSQL_HOME 并调用了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 连接错误:未知错误号
【问题讨论】: