在 macOS 上安裝 MSSQL 2019

前言

這個週末參加了微軟的活動,在全場都是 Windows 筆電中我帶了一個 Mac 過去。 (汗
這個會議的主題是 MSSQL 以及 K8S 在 AZURE 上面的服務。
所以參加之前還擔心了一下環境的建置,不過也幸好微軟最近擁抱開源非常的勤勞,現在我們在 Docker 上面也可以安裝 MSSQL 了。
接下來就跟大家說明如何在 Mac 上面安裝 MSSQL 2019。

環境準備

首先你要有 Docker Desktop,很值得慶幸的是現在 Docker 已經過了版本雜亂的年代了,
命令列中不再會有各種 docker-engine, docker-compose 還是什麼其他奇怪的命令讓使用搞不清楚狀況。

使用 homebrew 安裝

若正在看文章的你跟我一樣是活在 CLI 的世界裡面,我會推薦你使用這個方式安裝,能不開網頁就是不開!

$ brew cask install docker

官方網站下載安裝

若是你是屬於不喜歡 CLI 或者不熟悉的人,可以去 官方網站(HUB)
下載 dmg 進行安裝。

安裝 MSSQL 2019

都安裝正常執行之後,我們就可以到官方的 Hub 去找微軟的官方 Repo 下載 Container。
Docker Hub Microsoft

pull container

在畫面中可以看到這個是微軟官方在維護的一個 Repo,將頁面往下可以看到所有目前釋放出來的 MSSQL 版本,
今天我們要瞄準的是 MSSQL 2019

在頭幾行就能夠看到若要下載 2019 的 MSSQL,我們需要下的指令為:
$ docker pull mcr.microsoft.com/mssql/server:2019-latest

執行

下載下來之後我們應該要怎麼執行它?
很簡單,這部分我們可以直接一行指令搞定:

docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest

環境變數

在這裡可以看到我們在執行的時候下了兩個 -e 的指令,這個指令代表著 Docker 在執行這個 Container 的時候所要設定的環境變數,
在官方的文檔中,最基本需要的環境變數為兩個:

  • 同意 EULA (ACCEPT_EULA)
  • 設定 SA 使用者的密碼 (SA_PASSWORD)

SA 使用者的密碼可以隨便更改。

啟動指令

在其他的部分可以看到還下了 Port 的對應,將 Container 的 1433 對應到本機的 1433 port,這個 port 為稍後連線的 Port,
還有更多的詳細指令可以在官方的文檔中找到。Docker Run Options

完成

等候一下跑完成之後,輸入 docker ps 就能看到剛剛執行的 container 顯示在上面了。

CONTAINER ID        IMAGE                                        COMMAND                  CREATED             STATUS              PORTS                    NAMES
6f6ee11802da        mcr.microsoft.com/mssql/server:2019-latest   "/opt/mssql/bin/perm…"   3 seconds ago       Up 2 seconds        0.0.0.0:1433->1433/tcp   hopeful_euler

這樣就代表成跑起來了

小技巧

如果想要看 container 的輸出訊息,去掉執行命令的 -d 就可以了,這樣在 Debug 的過程中會輕鬆很多。

同場加映

在 Mac 上如果想要連線到 MSSQL 該怎麼辦呢?
SSMS 沒有支援 Mac 的情況下,我們可以使用類似的工具進行連結。
這個工具就是微軟開發的 Azure Data Studio

安裝 Azure Database Studio

Homebrew 安裝

直接執行
$ brew cask install azure-data-studio

一般安裝

前往 Microsoft Docs
下載 Dmg 檔案進行安裝。

結語

其實我一直都是不太喜歡微軟的,如果不是遊戲重度依賴 DirectX ,是連碰都不會碰的,但是出社會之後才漸漸理解到,
微軟在企業中的影響力是十分足夠的,但是微軟也沒有止步於此。 雖然剛開始跟 Linux 合作的時候被砲轟的滿天飛,
但微軟是真的證實有在為了開源做很大一部分的貢獻。

也因為如此我們漸漸的可以在非微軟的平台上使用他們的工具,目前體驗最明顯的應該就是 .Net Core 了吧?
雖然還有很長的一段路要走,但是我期待有一天能夠在非微軟的平台上用微軟的工具開發。