在Ubuntu下安裝sqlcmd(for mssql-server)
老問題之提醒,在Linux下使用MSSQL Server是很挑作業系統環境、版本的,我這邊使用的是Ubuntu 22.04 LTS
版,所以我所有的安裝過程都會假定是在這個環境下,如果跟我的環境不一樣將會遭遇到重重困難(且很不好解)。
版本選擇:mssql-tools或mssql-tools18
簡單的說,如果你的環境是Ubuntu 20.04、SQL Server 2019
含以上,那麼你就要安裝mssql-tools18
,否則就要安裝mssql-tools
。因此對我來說就要安裝mssql-tools18
。(竟然是透過這種命名法來區分版本?而不是寫自動化腳本依據不同的環境自動選擇不同的安裝方法...)
安裝mssql-tools18
Step 1. 切換到最高身分
sudo -i
Step 2. 匯入公開存放庫GPG金鑰
curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc
Step 3. 註冊Microsoft Ubuntu存放庫
curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
Step 4. 更新apt套件清單
apt update
Step 5. 安裝mssql-tools18
apt install -y mssql-tools18 unixodbc-dev
到這邊應該就正式完成了。
註冊PATH環境變數
透過下列步驟將/opt/mssql-tools18/bin
加入到PATH環境變數中,以利可以隨時在命令列中使用:
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
source ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
一般來說因為已經進行切換過最高管理權限(root),所以這樣的PATH設定也會變成針對root指定,如果你要讓登入時的預設使用者也可以使用sqlcmd
,那麼就要切回去再設定一次。
※ 註:這個加入.bash_profile
的動作有時候可能會出現抹除掉原本的檔案參數的狀況,如果出現再次登入Ubuntu後不會自動執行.bashrc
的情況,請檢查一下~/.bash_profile
的內容是否正確,如果出現抹除的狀況可以重新透過nano ~/.bash_profile
加入下列指令碼,讓使用者登入時會自動執行.bashrc
:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
測試sqlcmd是否可運作
由於mssql-tools18
會強制以SSL連線,所以在測試的時候必須要加上-C
這個參數來規避安全性,否則會出現錯誤訊息:
sqlcmd -C -S localhost -U sa -P YourPassword -Q "SELECT @@VERSION"
透過上面的指令就可以從連接localhost本機資料庫,查詢到當前的資料庫版本號,相當於確定可以連線資料庫了。
相關連結
- 在Ubuntu下安裝Microsoft SQL Server 2022
- 在Ubuntu下進行mssql-server之資料桶(Catalog)備份與異地還原
- 在Ubuntu下安裝sqlcmd(for mssql-server)
- 在Ubuntu下透過cron執行SQL完整備份