SQL Server 2017版本已經可以在Linux系統上安裝,但我在嘗試.NET Core跨平台開發的時候使用的是Mac系統,所以這裡記錄了在Mac上安裝SQL Server的過程。
最新的SQL Server沒有專門為Mac系統準備安裝包,但由於Mac系統上支援Docker,所以可以用一種變通的方式——在Docker內部安裝Linux版本的SQL Server。
系統要求
因為我的Macbook Air型號比較老,硬體條件很一般,所以首先確定下是否滿足安裝SQL Server的條件。官方給出的配置如下:
| 記憶體 |
2 GB |
| 檔案系統 |
XFS or EXT4 (other file systems, such as BTRFS, are unsupported) |
| 磁碟空間 |
6 GB |
| 處理器速度 |
2 GHz |
| 處理器核心數 |
2 cores |
| 處理器類型 |
x64-compatible only |
要求不高,看來沒有什麼問題。
Docker應用程式
Mac版本的Docker可以通過下列地址下載:
Docker Community Edition for Mac
完成安裝後還可以用docker -v命令驗證結果。
Docker鏡像
有了Docker程式後,第一步先要做的事情是拉取SQL Server用於linux系統的鏡像。
docker pull microsoft/mssql-server-linux:2017-latest
Docker容器
接著通過已拉取的鏡像啟動容器
docker run -d --name macsqlserver -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Passw1rd' -e 'MSSQL_PID=Developer' -p 1433:1433 microsoft/mssql-server-linux:2017-latest
在此命令中所用的參數都有實際用途:
-d 以daemon模式運行容器,即所啟動的應用程式在後台運行
--name 為容器賦予名稱
-e 'ACCEPT_EULA=Y' 在容器內部設定環境變數,用於確認接受終端使用者許可協議—— end-user license agreement (EULA)
-e 'SA_PASSWORD=Passw1rd' 在容器內部設定sa帳號的密碼
-e 'MSSQL_PID=Developer' 也是一個環境變數,令SQL Server以開發人員版本運行
-p 1433:1433 映射本地1433連接埠到容器內部SQL Server的1433連接埠
執行上述命令後,再執行docker ps -a,可以查看已啟動容器的狀態。如果狀態是Up的話,說明容器正常運行。
SQL Server用戶端
由於SQL Server Management Studio沒有被移植到其它系統上,所以要想在Mac系統以用戶端的方式串連已安裝的SQL Server,需要通過第三方工具。sql-cli便是其中一種用nodejs開發的用戶端。
先是用npm方式安裝sql-cli。
npm install -g sql-cli
完成安裝後用以下命令進入(所輸入的密碼需匹配實際設定的):
mssql -u sa -p Passw1rd
若串連成功,再輸入.databases命令,就可以看到熟悉的SQL Server內建的四個資料庫。
Visual Studio Code外掛程式
使用VSC開發的一大好處是其包含豐富的外掛程式。比如安裝完mssql這個外掛程式後,便可以利用VSC的便利,進行SQL程式的開發。
舉個簡單的例子:
⌘N,建立一個檔案
⌘K M,將語言模式改為SQL
⇧⌘P,開啟命令框,輸入sql,選中MS SQL: Connect,再選擇Create Connection Profile,然後輸入一系列資料庫連接配置。
如果最後在VSC的右下角看到的是類似下面的樣子,說明已經成功串連資料庫。
接著,在檔案內輸入SQL語句
use masterselect * from spt_monitor
⇧⌘E,執行上述語句。可以在新的視窗中看到結果。
值得一提的是,在結果視窗內,還可以通過檔案形式儲存記錄。