使用 R Shiny App 访问 MariaDB(在同一台服务器上)
Accessing MariaDB with R Shiny App (on same server)
我在本地网络中有一台服务器,上面安装了 MariaDB 和 R Shiny。出于测试目的,我创建了一个带有 table 的数据库和一个非常简单的 R Shiny 应用程序,它应该显示这个 table。如果 Shiny App 在我的电脑上运行,它可以访问服务器上的数据库并显示 table 没有任何问题。但是当我在服务器上部署应用程序时(主机更改为 127.0.0.1),应用程序的标题会短暂显示,但在尝试显示 table 时应用程序会立即断开连接。有谁知道问题可能是什么?提前感谢您的任何提示。
这是我的 server.R:
library(shiny)
library(DBI)
library(RMariaDB)
library(pool)
library(DT)
pool <- dbPool(
drv = MariaDB(),
user = "user",
password = "user-password",
host = "127.0.0.1",
port = 3306,
dbname = "test")
onStop(function() {
poolClose(pool)
})
shinyServer(function(input, output) {
output$table <- DT::renderDataTable({
dbReadTable(pool, "table1")
})
})
不幸的是,我忽略了 RMariaDB 没有正确安装在 R 服务器上的事实。安装失败,因为在服务器上找不到 mysql 客户端库。通过在服务器上安装 libmariadbclient-dev 并重新安装 RMariaDB R-package,现在一切正常。
我在本地网络中有一台服务器,上面安装了 MariaDB 和 R Shiny。出于测试目的,我创建了一个带有 table 的数据库和一个非常简单的 R Shiny 应用程序,它应该显示这个 table。如果 Shiny App 在我的电脑上运行,它可以访问服务器上的数据库并显示 table 没有任何问题。但是当我在服务器上部署应用程序时(主机更改为 127.0.0.1),应用程序的标题会短暂显示,但在尝试显示 table 时应用程序会立即断开连接。有谁知道问题可能是什么?提前感谢您的任何提示。
这是我的 server.R:
library(shiny)
library(DBI)
library(RMariaDB)
library(pool)
library(DT)
pool <- dbPool(
drv = MariaDB(),
user = "user",
password = "user-password",
host = "127.0.0.1",
port = 3306,
dbname = "test")
onStop(function() {
poolClose(pool)
})
shinyServer(function(input, output) {
output$table <- DT::renderDataTable({
dbReadTable(pool, "table1")
})
})
不幸的是,我忽略了 RMariaDB 没有正确安装在 R 服务器上的事实。安装失败,因为在服务器上找不到 mysql 客户端库。通过在服务器上安装 libmariadbclient-dev 并重新安装 RMariaDB R-package,现在一切正常。