SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Mac で SQL Server on Linux を動作させてみる

leave a comment

検証用に、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

clip_image001

インストール直後の Docker では、メモリが 2 GB の割り当てになっています。
現状の SQL Server on Linux では、メモリは 3.25 GB 必要になりますので、メモリの割り当てを変更します。
# 今回は 8GB (1 かずあきさん) モデルの MacBook Air を使っています。

clip_image002

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 では、まだサポートされていないとの情報があったため、こちらは様子見でしょうかね。clip_image003

 

Visual Studio Code


つづいて、VS Code に SQL Server のエクステンションを入れて接続をしてみたいと思います。

Use the mssql extension for Visual Studio Code

Visual Studio Code のインストール

 

Mac で SQL Server 用の拡張機能を実行する際に必要となる、OpenSSL用インストールのための brew コマンドを実行できるように環境を整えます。

Homebrew のインストール

/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」でクエリすることが可能です。

clip_image004

 

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 ツールで接続が可能です。

clip_image005


永続化領域の使用が課題ですが、ざっくりと全体は確認できたかなと。

Written by masayuki.ozawa

12月 4th, 2016 at 12:11 pm

Posted in SQL Server

Tagged with

Leave a Reply

*