以前、Dockerコンテナを介してMacにSQLServerをインストールする方法を説明しました。私がそれを書いたとき、SQL Server2017はSQLServerの最新バージョンであり、LinuxとDockerで利用できるようになったばかりです(つまり、MacOSシステムにもインストールできます)。
2018年後半に、MicrosoftはSQL Server 2019プレビューを発表し、その後2019年後半に一般リリースを発表しました。SQLServer2019のインストールプロセスは、SQL Server 2017の場合とまったく同じです。唯一の違いは、次のコンテナイメージを使用する必要があることです。 2017イメージの代わりにSQLServer2019。ここでは、その方法を説明します。
また、SQL Server 2017が既にインストールされていて、2017バージョンを削除せずにSQL Server 2019をインストールする場合は、ホストに別のポート番号を割り当てる必要があります。その方法も紹介します。
しかし最初に… M1チップを搭載したMacを使用している場合は、「M1 Mac(ARM64)にSQLServerをインストールする方法」を参照してください。
Docker
最初のステップは、Dockerをインストールすることです。 Dockerが既にインストールされている場合は、この手順をスキップできます(そして、SQL Serverに直接ジャンプできます)。
Dockerは、ソフトウェアを独自の分離された環境で実行できるようにするプラットフォームです。したがって、SQL Server 2019は、独自の分離されたコンテナー内のDockerで実行できます。
-
Dockerをインストールする
ダウンロードするには、Docker CE for Macのダウンロードページにアクセスし、 Get Dockerをクリックします。 。
インストールするには、 .dmgをダブルクリックします ファイルを作成してから、 Docker.appをドラッグします アプリケーションのアイコン フォルダ。
-
Dockerを起動
他のアプリケーションを起動するのと同じ方法でDockerを起動します(たとえば、Applicationsフォルダー、Launchpadなどを使用)。
Dockerを開くと、DockerがネットワークコンポーネントとDockerアプリへのリンクをインストールできるように、パスワードの入力を求められる場合があります。 Dockerを実行するにはパスワードが必要なので、先に進んでパスワードを入力してください。
-
メモリを増やす(オプション)
デフォルトでは、Dockerには2GBのメモリが割り当てられます。可能であれば、4GBに増やすことをお勧めします。
これを行うには、環境設定を選択します トップメニューの小さなDockerアイコンから:
次に、リソースで>詳細kbd> 画面で、メモリスライダーを少なくとも4GBまでスライドさせます:
次に、適用して再起動をクリックして終了します。
SQL Server
Dockerがインストールおよび構成されたので、SQLServer2019をダウンロードしてインストールできます。
-
SQLServer2019をダウンロード
ターミナルウィンドウを開き、次のコマンドを実行します。
sudo docker pull mcr.microsoft.com/mssql/server:2019-latest
これにより、最新のSQL Server forLinuxDockerイメージがコンピューターにダウンロードされます。
必要に応じて、DockerWebサイトでさまざまなコンテナイメージオプションを確認することもできます。
-
Dockerイメージを起動する
次のコマンドを実行して、ダウンロードしたDockerイメージのインスタンスを起動します。
sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=reallyStrongPwd#123" -p 1433:1433 --name Bart -d mcr.microsoft.com/mssql/server:2019-latest
Bart
を変更するだけです 選択した名前にreallyStrongPwd#123
選択したパスワードに。「ポートはすでに割り当てられています」というエラーが発生した場合は、以下を参照してください。
パラメータの説明は次のとおりです:
-
-e 'ACCEPT_EULA=Y'
-
Y
EULA(エンドユーザー使用許諾契約)に同意することを示します。これは必須です。 -
-e 'SA_PASSWORD=reallyStrongPwd#123'
-
sa
を設定する必須パラメーター データベースのパスワード。 -
-p 1433:1433
- これにより、ローカルポート1433がコンテナのポート1433にマップされます。最初の値は、ホスト環境のTCPポートです。 2番目の値はコンテナのTCPポートです。
-
--name Bart
- 別のオプションのパラメータ。このパラメーターを使用すると、コンテナーに名前を付けることができます。これは、ターミナルからコンテナを停止および開始するときに便利です。
sql_server_2019
のようなわかりやすい名前を付けることをお勧めします または同様のもの。 -
-d
- このオプションのパラメーターは、Dockerコンテナーをデーモンモードで起動します。これは、バックグラウンドで実行され、独自のターミナルウィンドウを開く必要がないことを意味します。このパラメータを省略して、コンテナを独自のターミナルウィンドウで実行することができます。
-
mcr.microsoft.com/mssql/server:2019-latest
- これはDockerにどのイメージを使用するかを指示します。
パスワード強度
強力なパスワードを使用する必要があります。 Microsoftはパスワードについてこう言っています:
パスワードはSQLServerのデフォルトのパスワードポリシーに従う必要があります。従わない場合、コンテナーはSQL Serverをセットアップできず、動作を停止します。デフォルトでは、パスワードは8文字以上で、大文字、小文字、10進数、記号の4つのセットのうち3つを含む必要があります。
エラー–「ポートはすでに割り当てられています」?
「ポートは既に割り当てられています」というエラーが表示された場合は、そのポートを使用する別のコンテナーにSQLServerが既にインストールされている可能性があります。この場合、ホスト上の別のポートにマッピングする必要があります。
したがって、上記のコマンドを次のように変更できます。
sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=reallyStrongPwd#123" -p 1400:1433 --name Bart -d mcr.microsoft.com/mssql/server:2019-latest
この場合、私は単に
-p 1433:1433
を変更しました-p 1400:1433
へ 。他のすべては同じままです。最初に既存のコンテナを削除する必要があるというエラーが表示される場合があります。これを行うには、次を実行します(ただし、
Bart
を交換します 自分のコンテナの名前で):sudo docker rm Bart
削除したら、前のコマンドをもう一度実行してみてください。
ここで行ったようにポートを変更する場合は、デスクトップのデータベースツールからSQL Serverに接続するときに、ポート番号を含める必要があることに注意してください。たとえば、Azure Data Studio(後述)を介して接続する場合は、
Localhost,1400
を使用して接続できます。Localhost
だけでなく 。コマンドラインSQLツールであるmssql-cliと同じです。 -
すべてをチェック
これで、準備が整いました。いくつかのチェックを実行してみましょう。
-
Dockerコンテナを確認します(オプション)
次のコマンドを入力して、Dockerコンテナが実行されていることを確認できます。
sudo docker ps -a
私の場合、これを取得します:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c1b060f68fcb mcr.microsoft.com/mssql/server:2019-latest "/opt/mssql/bin/sqls…" About a minute ago Up About a minute 0.0.0.0:1400->1433/tcp Bart fdec67e6a28d microsoft/mssql-server-linux "/opt/mssql/bin/sqls…" 4 months ago Up 8 days 0.0.0.0:1433->1433/tcp Homer
これは、2つのDockerコンテナが稼働していることを示しています。1つは Bart と呼ばれます もう1つは Homer と呼ばれます 。
-
SQLServerに接続する
ここでは、コンテナ内で「sqlcmd」と呼ばれるSQLServerコマンドラインツールを使用してSQLServerに接続します。
sudo docker exec -it Bart "bash"
プロンプトが表示されたらパスワードを入力します。
コンテナ内にいるので、sqlcmdを使用してローカルに接続します:
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "reallyStrongPwd#123"
これにより、sqlcmdプロンプト 1> が表示されます。 。
-
クイックテストを実行する
クイックテストを実行して、SQLServerが稼働していることを確認します。たとえば、次のように入力してSQLServerのバージョンを確認します。
SELECT @@version
これにより、コマンドプロンプト 2> が表示されます。 次の行に。クエリを実行するには、次のように入力します。
GO
結果:
+--------------------+ | (No column name) | |--------------------| | Microsoft SQL Server 2019 (RTM-CU3) (KB4538853) - 15.0.4023.6 (X64) Mar 4 2020 00:59:26 Copyright (C) 2019 Microsoft Corporation Developer Edition (64-bit) on Linux (Ubuntu 18.04.4 LTS) | +--------------------+ (1 row affected)
このようなメッセージが表示された場合は、おめでとうございます— SQL ServerがMacで稼働しています!
GUIを使用してSQLServerを管理する場合は、読み進めてください。
Azure Data Studio
Azure Data Studioは、MacでSQLServerを管理するために使用できる無料のGUI管理ツールです。これを使用して、データベースの作成と管理、クエリの作成、データベースのバックアップと復元などを行うことができます。
Azure Data Studioは、Windows、Mac、およびLinuxで使用できます。
AzureDataStudio用に作成した記事/チュートリアルは次のとおりです。
- AzureDataStudioとは
- MacにAzureDataStudioをインストールする方法
- AzureDataStudioを使用してデータベースを作成する方法
- MacでAzureDataStudioを使用してデータベースを復元する方法
もう1つの無料のSQLServerGUI – DBeaver
Mac(およびWindows / Linux / Solaris)で使用できるもう1つのSQLServerGUIツールはDBeaverです。
DBeaverは、ほとんどのデータベース管理システム(MySQL、PostgreSQL、MariaDB、SQLite、Oracle、DB2、SQL Server、Sybase、Microsoft Access、Teradata、Firebird、Derbyなど)で使用できる無料のオープンソースデータベース管理ツールです。 。
DBeaverの概要を少し書きました。または、DBeaverのダウンロードページに直接アクセスして、新しいSQLServerのインストールで試してみることができます。