從遠端 UNIX 機器上執行的 R 連接到 SQL Server
我們有一台 UNIX 機器,上麵包含 R 引擎並安裝了 SQL Server ODBC 驅動程序 11。
我們需要將 R 連接到 SQL Server。SQL Server 目前在另一台機器上工作,因此我們嘗試使用以下程式碼將 R 連接到 SQL Server。
library(RODBC) dbhandle <- odbcDriverConnect('driver=ODBC Driver 11 for SQL Server;server=10.XXX.XX.XX:1663;')
但是得到那個錯誤:
警告消息:1:在 odbcDriverConnect(“driver=ODBC Driver 11 for SQL Server;server=10.XXX.XX.XX:1663;”) 中:
$$ RODBC $$錯誤:狀態 HYT00,程式碼 0,消息$$ unixODBC $$$$ Microsoft $$$$ ODBC Driver 11 for SQL Server $$登錄超時已過期2:在 odbcDriverConnect(“driver=ODBC Driver 11 for SQL Server;server=10.XXX.XX.XX:1663;”) 中: $$ RODBC $$錯誤:狀態 08001,程式碼 87,消息 $$ unixODBC $$$$ Microsoft $$$$ ODBC Driver 11 for SQL Server $$**建立與 SQL Server 的連接時發生與網路相關或特定於實例的錯誤。**伺服器未找到或無法訪問。檢查實例名稱是否正確以及 SQL Server 是否配置為允許遠端連接。有關詳細資訊,請參閱 SQL Server 聯機叢書。3:在 odbcDriverConnect(“driver=ODBC Driver 11 for SQL Server;server=10.XXX.XX.XX:1663;”) 中: $$ RODBC $$錯誤:狀態 08001,程式碼 87,消息 $$ unixODBC $$$$ Microsoft $$$$ ODBC Driver 11 for SQL Server $$SQL Server 網路介面:連接字元串無效$$ 87 $$. 4: 在 odbcDriverConnect(“driver=ODBC Driver 11 for SQL Server;server=10.XXX.XX.XX:1663;”) : ODBC 連接失敗
如果我從 UNIX 機器上執行 telnet 到 SQL Server,它可以完美執行。我的意思是這兩台機器之間存在健康的連接。
我們如何在不使用 DSN 的情況下將 R 連接到 SQL Server?
我將伺服器和埠之間的分隔符從
:
更改為,
. 它解決了我的問題。dbhandle <- odbcDriverConnect('driver=ODBC Driver 11 for SQL Server;server=10.XXX.XX.XX,1663;')
Connection string is not valid
我認為是那裡的關鍵錯誤資訊。嘗試:
dbconnection <- odbcDriverConnect("Driver=ODBC Driver 11 for SQL Server; Server=10.XXX.XX.XX:1663; Database=YOURDBNAME; Uid=USERID; Pwd=PASSWORD")