R 根据会话$clientData$主机名(即本地或非本地)更改数据库池用户
通常,在开发连接到数据库的闪亮应用程序时,如果应用程序是本地/服务器上的,则需要使用不同的用户名 数据库连接的R 根据会话$clientData$主机名(即本地或非本地)更改数据库池用户,r,shiny,database-connection,pool,dbplyr,R,Shiny,Database Connection,Pool,Dbplyr,通常,在开发连接到数据库的闪亮应用程序时,如果应用程序是本地/服务器上的,则需要使用不同的用户名 数据库连接的pool方法是最有效的(),但在shinyServer函数之外调用到数据库的连接[根据建议]意味着不能使用session$clientData$url\u hostname 我想制作一个闪亮的应用程序,实现以下目标: 使用由应用程序是否在127.0.0.1上运行决定的用户名启动数据库池 显示行到行显示表格的行,行到行显示由滑块put设置 使用rsconnet()运行/部署应用程序的方
pool
方法是最有效的(),但在shinyServer
函数之外调用到数据库的连接[根据建议]意味着不能使用session$clientData$url\u hostname
我想制作一个闪亮的应用程序,实现以下目标:
- 使用由应用程序是否在127.0.0.1上运行决定的用户名启动数据库池
- 显示行到行显示表格的行,行到行显示由
滑块put设置
## ui.R
shinyUI(fluidPage(
sliderInput(
"rows_to_show",
"Exponent",
min = 10,
max = 50,
value = 5
),
dataTableOutput("table")
))
## server.R
library("shiny")
library("tidyverse")
library("dbplyr")
library("pool")
library("RMySQL")
## tryCatch so the app will actually run
tryCatch(
the_db <- dbPool(
drv = RMySQL::MySQL(),
dbname = "the_db",
port = 3306,
host = "163.1.169.xxx",
user = "database_username"
),
error = function(e)
e
)
shinyServer(function(input, output, session) {
database_username <- eventReactive(input$exponent,
{
if (session$clientData$url_hostname == "127.0.0.1") {
"local_username"
} else {
"remote_username"
}
}, ignoreInit = FALSE)
output$table <- renderDataTable({
rows_to_show <- as.numeric(input$rows_to_show)
# the_db %>%
# tbl("my_table") %>%
# collect() %>%
# slice(1:rows_to_show)
iris %>%
slice(1:rows_to_show)
})
})
##ui.R
shinyUI(fluidPage)(
滑音输入(
“行到行显示”,
“指数”,
最小值=10,
最大值=50,
值=5
),
dataTableOutput(“表”)
))
##服务器.R
图书馆(“闪亮”)
图书馆(“tidyverse”)
图书馆(“dbplyr”)
图书馆(“池”)
库(“RMySQL”)
##tryCatch以便应用程序实际运行
tryCatch(
_db%
切片(1:行到显示)
})
})
我遇到的正是这种情况。我需要根据应用程序的部署位置改变主机名(我们将应用程序部署到dev、stage和prod)。此外,在将来的某个时候,我们还需要根据访问应用程序的用户传递sql凭据@马丁,你明白了吗?我遇到的正是这种情况。我需要根据应用程序的部署位置改变主机名(我们将应用程序部署到dev、stage和prod)。此外,在将来的某个时候,我们还需要根据访问应用程序的用户传递sql凭据@马丁,你明白了吗?