2008-09-29 47 views
44

我們有一臺運行SQL Server 2005的Windows機器,我們需要能夠在Linux機器上運行一些數據庫查詢。推薦的方法是什麼?理想情況下,我們需要一個類似於Windows上的sqlcmd的命令行實用程序。從Linux訪問Microsoft SQL Server有哪些方法?

回答

31

FreeTDS + unixODBCiODBC

安裝第一freetds的,然後配置兩個ODBC引擎使用freetds的作爲其ODBC驅動程序之一。然後使用ODBC引擎的命令行界面。

的unixODBC有ISQL,iODBC的具有iodbctest

您也可以使用自己喜歡的編程語言(我已經成功地使用的Perl,C,Python和Ruby連接MSSQL)

我個人使用FreeTDS + iODBC:

$more /etc/freetds/freetds.conf 
[10.0.1.251] 
    host = 10.0.1.251 
    port = 1433 
    tds version = 8.0 

$ more /etc/odbc.ini 
[ACCT] 
Driver = /usr/local/freetds/lib/libtdsodbc.so 
Description = ODBC to SQLServer via FreeTDS 
Trace = No 
Servername = 10.0.1.251 
Database = accounts_ver8 
+1

在Ubuntu中,我使用驅動程序路徑`/ usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so`。我得到[ISQL]錯誤:無法SQLConnect。 – 2015-10-26 08:58:19

+0

ODBC是允許Linux與MSSQL通話的驅動程序,FreeTDS解釋協議,對不對? – orrymr 2016-03-04 11:38:31

+0

微軟昨天發佈了支持Docker,Ubuntu等的Linux公共SQL Server。https://www.microsoft.com/en-us/sql-server/sql-server-vnext-including-Linux – gavioto 2016-11-17 17:17:01

2

你想要得到的數據做什麼你不說,但如果是一般的查詢,以開發/維護然後我還以爲遠程桌面窗口服務器,然後在其上使用實際的SQL Server工具對於Linux本身的任何黑客入侵解決方案來說總是一個更高效的選擇。

6

pymssql是基於FreeTDS的DB-API Python模塊。它爲我工作。如果需要,創建一些輔助函數,並從Python shell中使用它。

2

有一個可用於PHP的抽象庫。不知道你的客戶端的盒子會支持什麼,但是如果它的Linux當然應該支持構建一個PHP查詢接口: http://adodb.sourceforge.net/希望可以幫助你。

9

SQSH(http://www.sqsh.org/)+ freetds的(http://www.freetds.org

SQSH主要是用於Sybase SQL服務器(現在ASE)爲isql替代,但它連接到SQL Server的作品就好了(前提是你使用freetds的)。

要編譯,只需將$ SYBASE指向freetds install,它應該從那裏開始工作。我整天在我的Mac上使用它。

sqsh最好的部分是高級功能,比如死鎖簡單的服務器鏈接(不需要在SQL Server中設置鏈接服務器),流控制和循環(不再串聯字符串並執行動態SQL)和不可見批量複製/加載。

任何使用任何其他命令行工具的人都很瘋狂! :)

11

sql-cli是一個基於nodejs的跨平臺命令行界面,適用於sql server。您可以通過npm安裝它https://www.npmjs.org/package/sql-cli

它可以連接到內部部署和sql azure實例。

相關問題