我們有一臺運行SQL Server 2005的Windows機器,我們需要能夠在Linux機器上運行一些數據庫查詢。推薦的方法是什麼?理想情況下,我們需要一個類似於Windows上的sqlcmd的命令行實用程序。從Linux訪問Microsoft SQL Server有哪些方法?
回答
安裝第一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
Mono包含一個ADO.NET提供程序,應該爲您執行此操作。我不知道是否有命令行實用程序,但是如果沒有,您肯定可以包裝一些C#來執行查詢。
看一看http://www.mono-project.com/TDS_Providers和http://www.mono-project.com/SQLClient
你想要得到的數據做什麼你不說,但如果是一般的查詢,以開發/維護然後我還以爲遠程桌面窗口服務器,然後在其上使用實際的SQL Server工具對於Linux本身的任何黑客入侵解決方案來說總是一個更高效的選擇。
pymssql是基於FreeTDS的DB-API Python模塊。它爲我工作。如果需要,創建一些輔助函數,並從Python shell中使用它。
有一個可用於PHP的抽象庫。不知道你的客戶端的盒子會支持什麼,但是如果它的Linux當然應該支持構建一個PHP查詢接口: http://adodb.sourceforge.net/希望可以幫助你。
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)和不可見批量複製/加載。
任何使用任何其他命令行工具的人都很瘋狂! :)
我是不是舒適與freetds的解決方案, 這就是爲什麼我編寫了一個類(命令歷史記錄,自動完成對錶和字段等等)
http://www.phpclasses.org/package/8168-PHP-Use-ncurses-to-get-key-inputs-and-write-shell-text.html
sql-cli是一個基於nodejs的跨平臺命令行界面,適用於sql server。您可以通過npm安裝它https://www.npmjs.org/package/sql-cli
它可以連接到內部部署和sql azure實例。
由於November 2011微軟爲紅帽企業Linux(RHEL)和SUSE Linux Enterprise Server(SLES)提供了自己的SQL Server ODBC Driver for Linux。
- Download Microsoft ODBC Driver 11 for SQL Server on Red Hat Linux
- Download Microsoft ODBC Driver 11 for SQL Server on SUSE - CTP
- ODBC Driver on Linux Documentation
它還包括sqlcmd
的Linux版本。
- 1. 從GNU/Linux上運行的Tcl訪問Microsoft SQL Server
- 2. 在PERL中從Windows訪問Microsoft SQL Server
- 3. C++從Linux到SQL Server的訪問
- 4. 從Microsoft SQL Server 2012可以通過DB LINK連接哪些DB?
- 5. SQL Server:找出哪些用戶對哪些表有寫權限?
- 6. 哪個訪問方法更快的Sql server
- 7. 在SQL Server中匹配街道地址的方法有哪些?
- 8. 在SQL Server中處理'Enumerations'有哪些不同的方法?
- 9. 訪問SQL Server 2008 R2的Linux?
- 10. 從iPhone應用程序訪問Microsoft SQL Server
- 11. 訪問:可以從SQL Server自動更新Microsoft Access表格
- 12. 從PostgreSQL函數訪問Microsoft SQL Server上的數據
- 13. 無法訪問SQL Server 2012
- 14. 從SQL Server訪問Active Directory
- 15. 從MonoTouch訪問SQL Server 2008
- 16. 從SQL Server插入訪問
- 17. 從訪問到SQL Server 2008
- 18. 從Android訪問SQL Server 2008?
- 19. 無法從Microsoft下載Sql Server
- 20. SQL Express/SQL Server需要哪些服務?
- 21. 關於從Android訪問遠程SQL Server的一些問題
- 22. Linux啓動應用程序的方式和方法有哪些
- 23. 訪問SQL Server
- 24. 訪問SQL Server
- 25. 如何從Linux訪問Team Foundation Server(TFS)
- 26. 如何從Linux中的Perl腳本訪問SQL Server數據庫?
- 27. T-SQL(Microsoft SQL Server)
- 28. Linux上的PHP隨機無法連接到Microsoft SQL Server 2005
- 29. 我可以使用Microsoft WebMatrix訪問SQL Server 2008嗎?
- 30. 我們可以訪問WAN上的Microsoft SQL Server數據庫嗎?
在Ubuntu中,我使用驅動程序路徑`/ usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so`。我得到[ISQL]錯誤:無法SQLConnect。 – 2015-10-26 08:58:19
ODBC是允許Linux與MSSQL通話的驅動程序,FreeTDS解釋協議,對不對? – orrymr 2016-03-04 11:38:31
微軟昨天發佈了支持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