[英]Error connecting to sql server with docker, rbase, and RODBC
I'm trying to access a SQL Server on a local intranet with R, where R is loaded in a docker file with R-base.
在我的桌面上,我創建了一個 ODBC 驅動程序,它通過以下內容識別我的 windows 憑據:
odbcDriverConnect('driver={SQL Server};server=<serverName>;database=<dbName>;trusted_connection=yes')
使用 R-base,經過大量試驗和錯誤后,我能夠安裝 RODBC,但我不知道如何連接到該服務器。
Warning messages:
[RODBC] ERROR: state 01000, code 0, message [unixODBC][Driver Manager]Can't open lib 'SQL Server' : file not found
DockerFile,經過大量試驗和錯誤構建。 我敢肯定其中大部分是多余的。 我還暴露了一些我發現做一些研究的端口,但我不知道是否需要暴露它們。
FROM openanalytics/r-base
# system libraries of general use
RUN apt-get update && apt-get install -y \
sudo \
libcairo2-dev \
libxt-dev \
libcurl4-gnutls-dev \
libssl-dev \
libssh2-1-dev \
libssl1.0.0
# RODBC
RUN apt-get update && \
apt-get install -y --no-install-recommends \
unixodbc \
unixodbc-dev \
unixodbc \
unixodbc-dev \
r-cran-rodbc \
apt-transport-https \
libssl-dev \
libsasl2-dev \
openssl \
curl \
unixodbc \
gnupg \
libc6 libc6-dev libc6-dbg
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
#RUN curl https://packages.microsoft.com/config/ubuntu/19.10/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN apt-get update -y
RUN ACCEPT_EULA=Y apt-get install -y msodbcsql17 unixodbc-dev mssql-tools
EXPOSE 3838
EXPOSE 8787
構建文件后,我進入 R 工作室並使用install.packages("RODBC")
如何從 docker 文件連接到 SQL 服務器?
- - - - - 更新
在使用 Ubuntu 創建 docker 容器后,我發現我無法 ping 服務器名稱。 但是,我能夠 ping 服務器 ip 地址。
我修改了搜索字符串ping ip地址,並更改了驅動,如下:
odbcDriverConnect('driver={ODBC Driver 17 for SQL Server};server=<serverName>;database=<dbName>;trusted_connection=yes')
這仍然沒有奏效。
我無法弄清楚如何使用 docker 虛擬機內的 docker 主機的 Windows 憑據連接到數據庫。
我必須為數據庫創建一個用戶名和密碼並與之連接。
我認為如果您將驅動程序更改為 FreeTDS,這將起作用。 R 不支持 Sql 服務器驅動程序,除非它是專業計划。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.