簡體   English   中英

Shiny Server無法使用RODBC連接到DB2,但是RStudio可以在Docker容器中

[英]Shiny Server cannot use RODBC to connect to DB2 but RStudio can in a Docker Container

我正在將Docker容器中的閃亮應用程序部署到Bluemix上。 我正在使用rocker / shiny Docker映像( https://hub.docker.com/r/rocker/shiny/ )作為初始起點。 我已經安裝了unixODBC-dev,RODBC,ibm數據服務器驅動程序軟件包,用於R的ibmdbR庫以及所有必需的依賴項。 我唯一的問題是,當我嘗試從Web瀏覽器訪問閃亮的應用程序時,該應用程序無法執行,錯誤是:

Warning in odbcDriverConnect("DSN=BLUDB",  :
[RODBC] ERROR: state 01000, code 0, message [unixODBC][Driver Manager]Can't open lib '/root/db2_cli_odbc_driver/dsdriver/odbc_cli_driver/linuxamd64/clidriver/lib/libdb2o.so' : file not found
Warning in odbcDriverConnect("DSN=BLUDB;  :
ODBC connection failed
Error in idaInit(con) : con is not an open connection, please use idaConnect() to create an open connection to the data base.

最初,每當我嘗試使用isql連接到數據庫或嘗試從RStudio連接時,我都遇到相同的問題,我在該庫文件上使用了ldd,發現缺少了什么,並通過命令行和RStudio修復了連接問題,但是我的Shiny-Server仍然給我同樣的錯誤,我還缺少什么嗎?

我最終自己解決了這個問題,結果是作為服務運行的閃亮服務器無法訪問這些庫。 我將db2 odbc驅動程序移至/ usr / local / lib以使其可訪問,我還在錯誤消息中提到的庫上運行了“ ldd”命令,並發現我也必須安裝libxml2。 之后,我只需更改/ etc中的odbcinst.ini文件以引用db2庫的新位置即可,現在一切正常! 希望其他嘗試部署依賴於連接到DB2數據庫的Shiny Apps的人都會發現這很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM