在一些情況下,運行在Linux上的服務需要訪問SQL Server數據庫;而在一些特殊情況下,我們需要快速確認訪問SQL Server數據庫是否有異常。比如我遇到的這種情況,一個java服務在其他機器上可以正常運行,而在某臺Linux機器上就運行不起來,同時,已確認這臺機器可以正常訪問SQL Server服務器的IP和端口。當然,這種情況下有很多解決辦法,比如我可以專門寫個java的程序或者python的腳本去驗證訪問SQL Server是否有問題。不過自己寫程序畢竟還是稍微麻煩些,而且還要引用和安裝各種類庫,不是很方便。
實際上,從SQL Server 2017開始,SQL Server就可以穩定地在Linux上運行了。所以,在Linux上直接使用Microsoft官方的客戶端工具是最方便的一種方式。雖然確實很方便也很簡單,但是如果沒有找到竅門,還是要費點功夫的。
下面是在Linux上安裝SQL Server客戶端的方法:
1.在開始之前,確認下系統信息,我用的系統是:CentOS Linux release 7.0.1406 (Core)
2.添加Microsoft官方的源
這步其實是最重要的,是正常安裝的關鍵。網絡上很多文章包括官方的文檔裏都會給出這一步,但實際上這一步的地址Microsoft會更新和變更,直接引用文章中的地址往往會出錯。這一步需要自己做一些判斷和選擇。
Microsoft官方源的父目錄地址爲:https://packages.microsoft.com/config/
打開後顯示如下:
我們需要根據自己的系統進行選擇。
我用的是CentOS 7.0,所以選https://packages.microsoft.com/config/centos/7/prod.repo
3.安裝SQL Server客戶端
非常簡單,執行“yum install mssql-cli -y”就可以安裝成功了。
這裏需要說下的是,Microsoft官方是有幾個命令行實用工具的,常見的是sqlcmd,這個是在SQL Server比較老的版本中就有的。安裝sqlcmd的命令是:”yum install mssql-tools -y”,安裝好的路徑是/opt/mssql-tools,需要自己設置環境變量或者做鏈接纔好用。
不過,sqlcmd在Microsoft官方最新更新的一些源中已經不支持了。比如我選的這個源執行”yum install mssql-tools -y”就會報”No package mssql-tools available.Error: Nothing to do”,不能安裝成功。
而mssql-cli是SQL Server 2016開始支持的一個開源交互式命令行工具,提供了T-SQL智能感知、語法高亮、多行編輯、結果格式美化、支持配置文件等功能,個人感受比sqlcmd好用太多,推薦使用mssql-cli。
4.運行mssql-cli
mssql-cli的使用跟mysql很像,不過參數有所區別。
-S或--server 指定服務器地址,如果是默認的1433端口,那麼不寫也行;如果是其他端口的話,在後面加逗號和端口就行。
-U或--username 指定用戶名
-P或--password 指定密碼
OK.現在就可以暢快地在Linux上跟訪問MySQL一樣訪問SQL Server 數據庫了。