SQL Server 2017版本已經可以在Linux系統上安裝,但我在嘗試.NET Core跨平臺開發的時候使用的是Mac系統,所以這裡記錄了在Mac上安裝SQL Server的過程。 最新的SQL Server沒有專門為Mac系統準備安裝包,但由於Mac系統上支持Docker,所以可以用一種變通 ...
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 master
select * from spt_monitor
⇧⌘E,執行上述語句。可以在新的視窗中看到結果。
值得一提的是,在結果視窗內,還可以通過文件形式保存記錄。