1. 程式人生 > >.NET Core開發日誌——Linux版本的SQL Server

.NET Core開發日誌——Linux版本的SQL Server

mac 通過 後臺運行 dev net -a 變量 下載 btrfs

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,執行上述語句。可以在新的窗口中看到結果。
技術分享圖片

值得一提的是,在結果窗口內,還可以通過文件形式保存記錄。
技術分享圖片

.NET Core開發日誌——Linux版本的SQL Server