Sql-Server

從遠端 UNIX 機器上執行的 R 連接到 SQL Server

  • March 11, 2016

我們有一台 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")

引用自:https://dba.stackexchange.com/questions/131674