検証用に、MacBook Air を入手したので、SQL Server on Linux を動作させてみました。
Mac 版については、Mac の上で動作させている Docker 上で起動しているものになりますので、Docker 版と同じ認識でよさそうですかね。
Docker のインストール
Run the SQL Server Docker image on Linux, Mac, or Windows
Mac 版は Docker 上で動作しますので、最初に Docker をインストールします。
https://www.docker.com
インストール直後の Docker では、メモリが 2 GB の割り当てになっています。
現状の SQL Server on Linux では、メモリは 3.25 GB 必要になりますので、メモリの割り当てを変更します。
# 今回は 8GB (1 かずあきさん) モデルの MacBook Air を使っています。
Docker のインストールが終わったら、SQL Server on Linux のイメージを Docker Hub からダウンロードします。
https://hub.docker.com/r/microsoft/mssql-server-linux/
sudo docker pull microsoft/mssql-server-linux
ダウンロードが完了したらコンテナーを起動します。
docker run --name sol -e ACCEPT_EULA=Y -e SA_PASSWORD='<パスワード>' -p 1433:1433 -d microsoft/mssql-server-linux
コンテナー起動時に永続化領域使用する場合、「-v」オプションを使用しますが、軽く調べてみたところ、単純な方法ではこのオプションサポートされていないみたいですね。
docker run --name sol -e ACCEPT_EULA=Y -e SA_PASSWORD='<パスワード>' -v ~/databases:/var/opt/mssql -p 1433:1433 -d microsoft/mssql-server-linux
上記のようなコマンドでコンテナーを起動すると以下のようなエラーとなるかと思います。
永続化領域として指定しているディレクトリの master データベースのファイルに対してアクセスができず、起動がエラーになっているようなのですよね。
# 永続化領域にファイルはきちんとコピーされているのですが。
2016-12-04 01:03:15.00 Server Error: 17113, Severity: 16, State: 1.
2016-12-04 01:03:15.00 Server Error 2(The system cannot find the file specified.) occurred while opening file ‘C:\var\opt\mssql\data\master.mdf’ to obtain configuration information at startup. An invalid startup option might have caused the error. Verify your startup options, and correct or remove them if necessary.
2016-12-04 01:03:15.14 Server SQL Server shutdown has been initiated
同様のエラーの報告は複数報告されています。
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-docker
https://hub.docker.com/r/microsoft/mssql-server-linux/
を見たところ、macOS では、まだサポートされていないとの情報があったため、こちらは様子見でしょうかね。
Visual Studio Code
つづいて、VS Code に SQL Server のエクステンションを入れて接続をしてみたいと思います。
Use the mssql extension for Visual Studio Code
Mac で SQL Server 用の拡張機能を実行する際に必要となる、OpenSSL用インストールのための brew コマンドを実行できるように環境を整えます。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
次に、OpenSSL のインストールを行います。
brew update brew install openssl ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/ ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/
環境の準備が整ったら、SQL Server 用拡張のインストールを行います。
mssql for Visual Studio Code
Mac 版の VS Code の場合、「Command + Shift + E」でクエリすることが可能です。
CUI ツール
Windows / Linux 版の場合、SQLCMD を使用しますが、Mac の場合は sql-cli を利用する用ですのでインストールしてみます。
Install SQL Server tools on Linux
sql-cli
brew install node npm install -g sql-cli git clone https://github.com/hasankhan/sql-cli cd sql-cli git checkout dev npm install -g
これで、以下のように CUI ツールで接続が可能です。
永続化領域の使用が課題ですが、ざっくりと全体は確認できたかなと。