Microsoft SQL Server

ローカルSQL Serverデータベースのセットアップ

共有する

概要

このガイドでは、SQL Serverインスタンスsqlcmdコマンドラインクライアントのインストールと設定について説明します。これらのコンポーネントをローカルアクセス用にコンピューターにインストールしてセットアップする方法を詳しく見ていきます。

このガイドでは、以下のプラットフォームについて説明します

作業するプラットフォームに合ったセクションに移動してください。

WindowsでのSQL Serverのセットアップ

Microsoftは、SQL ServerのネイティブWindowsインストーラーを自社サイトで提供しており、さまざまな目的に適したSQL Serverのバージョンを提供しています。このガイドの目的では、無料のDeveloper Editionをダウンロードしてインストールします。本番環境で使用したい場合は、Developer Editionから有料版に簡単にアップグレードできます。

まず、MicrosoftのSQL Serverページにアクセスします。Developer Edition関連のセクションを見つけ、今すぐダウンロードをクリックします。

Download SQL Server Developer Edition

ダウンロードが完了したら、ファイルをダブルクリックしてインストーラーを実行します(プログラムがコンピューターに変更を加えることを許可するかどうか確認する必要がある場合があります)。

インストーラーの最初の画面で、実行したいインストールの種類を選択するよう求められます。

SQL Server choose installation type

最も一般的なオプションを使用して通常のインストールを続行するには、基本を選択します。

次に、Developer Editionのライセンス条項に同意するよう求められます。

SQL Server agree to terms

ライセンスを読み、条項に同意したら、同意するをクリックして続行します。

次に、インストール場所を確認または変更します。

SQL Server choose installation location

準備ができたら、インストールをクリックしてインストールプロセスを開始します。

インストーラーは、SQL Serverをコンピューターにセットアップするためのコンポーネントのダウンロードとインストールを開始します。

SQL Server downloading and installing

インストールが完了すると、現在のインストールプロパティを示す画面が表示されます。

SQL Server installation successful

新しいSQL Serverインスタンスにすぐに接続するには、下部の今すぐ接続をクリックします。

新しいCmdウィンドウが表示され、sqlcmdクライアントを使用してSQL Serverインスタンスに自動的にログインされます。

SQL Server connect to database

ウィンドウの上部にあるコメントに示されているように、いつでもsqlcmdクライアントを使用してSQL Serverに手動で接続できます。

sqlcmd -S <yourhostname> -E

現在のSQLセッションを終了するには、次のように入力します。

EXIT

macOSでのSQL Serverのセットアップ

MicrosoftはmacOS用のネイティブインストーラーを提供していませんが、Dockerを介してmacOS上でのSQL Serverの実行をサポートしています。主要なSQL Server DockerコンテナはLinuxコンテナを使用して構築されており、Dockerコンテナを実行できるホストであればどのホストでもデータベースサーバーを実行できます。

イメージを正常に実行するには、少なくとも2GBのメモリ(おそらくもう少し)が必要です。ただし、Docker自体は少なくとも4GBのメモリを必要とします。

まず、システムにDockerがインストールされていることを確認してください。Docker Desktop for Macには、Docker Engineおよびその他の関連アプリケーションが含まれています。まだDockerがインストールされていない場合は、上記のリンクに含まれる指示に従ってください。

Dockerが起動して実行されたら、次のように入力してMicrosoft Container RegistryからSQL Server Dockerイメージをプルできます。

docker pull mcr.microsoft.com/mssql/server:2019-latest

これにより、必要なすべてのイメージレイヤーがローカルシステムにダウンロードされ、起動が高速になります。

コンテナを起動する準備ができたら、次のコマンドを入力します。

<password>をご希望のパスワードに置き換え、イメージのパスワードポリシーに準拠する値を選択してください。本稿執筆時点でのポリシーは、「パスワードは8文字以上で、大文字、小文字、10進数字、記号の4つのうち3つ以上の文字種を含める必要があります」と定義されています。

docker run --env "ACCEPT_EULA=Y" --env "SA_PASSWORD=<password>" --publish 1433:1433 --name mssql --hostname mssql --detach mcr.microsoft.com/mssql/server:2019-latest

SQL Serverコンテナはバックグラウンドで起動されます。表示される文字列は新しいコンテナのIDです。

次のように入力して、コンテナが起動して実行されていることを確認できます。

docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ffa9ef357b5c mcr.microsoft.com/mssql/server:2019-latest "/opt/mssql/bin/perm…" 2 minutes ago Up 2 minutes 0.0.0.0:1433->1433/tcp mssql
ae00765e36fb hello-world "/hello" 24 minutes ago Exited (0) 24 minutes ago dreamy_swanson

リストの中にmssqlコンテナが表示されるはずです。コンテナが実行されていない場合や問題がある場合は、ログを表示して役立つメッセージがあるか確認できます。

docker logs mssql

SQL Serverコンテナにはデータベースサーバーがインストールされているだけでなく、sqlcmdコマンドラインクライアントを含むいくつかの一般的なツールも利用可能です。このクライアントを使用してデータベースインスタンスに接続するには、docker execを使用してコマンドにアクセスし、データベースに対して認証を行います。

docker exec --interactive --tty mssql /opt/mssql-tools/bin/sqlcmd -U SA -S 127.0.0.1 -P "<password>"

コンテナ内のSQL Serverに認証され、SQLシェルに入ります。次のように入力して、すべてが正常に動作していることを確認できます。

SELECT @@VERSION;
GO
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Microsoft SQL Server 2019 (RTM-CU9) (KB5000642) - 15.0.4102.2 (X64)
Jan 25 2021 20:16:12
Copyright (C) 2019 Microsoft Corporation
Developer Edition (64-bit) on Linux (Ubuntu 18.04.5 LTS) <X64>
(1 rows affected)

SQLセッションを終了して通常のシェルに戻るには、次のように入力します。

EXIT

完了したらSQL Serverコンテナをシャットダウンするには、次のように入力して停止できます。

docker stop mssql

コンテナインスタンス(内部のすべてのデータを含む!)を削除するには、次のように入力します。

docker rm mssql

SQL Serverコンテナ内のデータを永続化するには、Microsoftのドキュメントに記載されている手法のいずれかを使用するか、Docker自身のデータボリュームをコンテナで使用する方法に関するドキュメントを参照してください。

LinuxでのSQL Serverのセットアップ

インストール方法は、使用しているLinuxディストリビューションによって異なります。ご使用のLinuxディストリビューションに合った以下のセクションに従ってください。また、その構成を好む場合や、リストにないディストリビューションを使用したい場合は、Dockerを使用する手順もあります。

Ubuntu

Ubuntu 20.04にSQL Serverをインストールする最も簡単な方法は、Microsoftが提供する専用リポジトリからインストールすることです。必要なソフトウェアを正常にインストールして実行するには、マシンに少なくとも2GBのメモリが必要です。

まず、次のように入力してシステムに新しいリポジトリ定義を追加します。

sudo add-apt-repository "$(wget --quiet -O - https://packages.microsoft.com/config/ubuntu/18.04/mssql-server-2019.list)"

また、sqlcmdバイナリやその他のツールにアクセスするには、別のリポジトリを追加する必要があります。

sudo add-apt-repository "$(wget --quiet -O - https://packages.microsoft.com/config/ubuntu/20.04/prod.list)"

次に、新しいリポジトリのパッケージを信頼するように、Microsoftパッケージ署名キーをaptに追加します。

wget --quiet -O - https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

リポジトリが設定されたら、次のように入力してSQL Serverとsqlcmdコマンドラインクライアントをインストールできます。

sudo apt install mssql-server mssql-tools unixodbc-dev

インストールが完了したら、新しいデータベースインスタンスを構成する必要があります。そのためには、付属のmssql-conf setupスクリプトを実行して、新しいシステムの基本的なプロパティを設定します。

sudo /opt/mssql/bin/mssql-conf setup

データベースサーバーを構成するために、一連の質問が尋ねられます。

まず、使用したいSQL Serverのエディションを尋ねられます。

Choose an edition of SQL Server:
1) Evaluation (free, no production use rights, 180-day limit)
2) Developer (free, no production use rights)
3) Express (free)
4) Web (PAID)
5) Standard (PAID)
6) Enterprise (PAID) - CPU Core utilization restricted to 20 physical/40 hyperthreaded
7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum
8) I bought a license through a retail sales channel and have a product key to enter.
Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=2109348&clcid=0x409
Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.
Enter your edition(1-8):

有料ライセンスをお持ちの場合は、適切なバージョンを選択できます。非本番環境でサーバーを使用している場合は、開発者版を選択しても問題ありません。

次に、再びライセンス条項に同意する必要があります。

The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=2104294&clcid=0x409
The privacy statement can be viewed at:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409
Do you accept the license terms? [Yes/No]:

最後に、SQL Serverシステム管理者アカウント(多くの場所でSAアカウントと呼ばれます)のパスワードを設定して確認する必要があります。

Enter the SQL Server system administrator password:
Confirm the SQL Server system administrator password:

sqlcmdクライアントを使用してSQL Serverインスタンスに接続するには、mssql-toolsバイナリディレクトリをPATHに追加するのが最も簡単です。これを設定するには、次のように入力します。

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

その後、上記の2つのファイルのいずれかを再読み込みして、現在のセッションの新しいPATHを評価します。

source ~/.bashrc

これで、次のように入力してデータベースインスタンスに接続できます。

sqlcmd -U SA -S 127.0.0.1

以前に設定したパスワードの入力を求められます。認証に成功すると、SQLシェルに入ります。ここから、サーバーのバージョンを出力することで、すべてが動作していることを確認できます。

SELECT @@VERSION
GO
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Microsoft SQL Server 2019 (RTM-CU9) (KB5000642) - 15.0.4102.2 (X64)
Jan 25 2021 20:16:12
Copyright (C) 2019 Microsoft Corporation
Developer Edition (64-bit) on Linux (Ubuntu 20.04.2 LTS) <X64>
(1 rows affected)

SQLシェルを終了してコマンドラインに戻るには、次のように入力します。

EXIT

CentOSとRed Hat

CentOSまたはRed HatにSQL Serverをインストールする最も簡単な方法は、Microsoftが提供するリポジトリを使用することです。SQL Serverをインストールして実行するには、Linuxホストに少なくとも2GBのメモリが必要です。

SQL Serverをインストールする前に、その依存関係をインストールして構成する必要があります。続行するには、Python 2とOpenSSL 10の両方が必要です。

sudo yum install python2 compat-openssl10

Python 2がインストールされたら、それをデフォルトのPythonインスタンスとして使用するようにシステムを構成します。

sudo alternatives --config python

続くリストから、Python 2のインストールに関連付けられた番号を選択します。以下の例では、これはオプション2になります。

There are 2 programs which provide 'python'.
Selection Command
-----------------------------------------------
*+ 1 /usr/libexec/no-python
2 /usr/bin/python2
Enter to keep the current selection[+], or type selection number: 2

依存関係が整ったら、SQL ServerのYUMリポジトリを構成できます。

sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/$(rpm --eval %{rhel})/mssql-server-2019.repo

その後、sqlcmdおよびその他のツールにアクセスするために、追加のリポジトリを構成する必要があります。

sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/$(rpm --eval %{rhel})/prod.repo

リポジトリが構成されたら、次のように入力してSQL Serverをインストールします。

sudo yum install mssql-server mssql-tools unixODBC-devel

インストールが完了したら、新しいデータベースインスタンスを構成する必要があります。そのためには、付属のmssql-conf setupスクリプトを実行して、新しいシステムの基本的なプロパティを設定します。

sudo /opt/mssql/bin/mssql-conf setup

データベースサーバーを構成するために、一連の質問が尋ねられます。

まず、使用したいSQL Serverのエディションを尋ねられます。

Choose an edition of SQL Server:
1) Evaluation (free, no production use rights, 180-day limit)
2) Developer (free, no production use rights)
3) Express (free)
4) Web (PAID)
5) Standard (PAID)
6) Enterprise (PAID) - CPU Core utilization restricted to 20 physical/40 hyperthreaded
7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum
8) I bought a license through a retail sales channel and have a product key to enter.
Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=2109348&clcid=0x409
Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.
Enter your edition(1-8):

有料ライセンスをお持ちの場合は、適切なバージョンを選択できます。非本番環境でサーバーを使用している場合は、開発者版を選択しても問題ありません。

次に、再びライセンス条項に同意する必要があります。

The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=2104294&clcid=0x409
The privacy statement can be viewed at:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409
Do you accept the license terms? [Yes/No]:

最後に、SQL Serverシステム管理者アカウント(多くの場所でSAアカウントと呼ばれます)のパスワードを設定して確認する必要があります。

Enter the SQL Server system administrator password:
Confirm the SQL Server system administrator password:

sqlcmdクライアントを使用してSQL Serverインスタンスに接続するには、mssql-toolsバイナリディレクトリをPATHに追加するのが最も簡単です。これを設定するには、次のように入力します。

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

その後、上記の2つのファイルのいずれかを再読み込みして、現在のセッションの新しいPATHを評価します。

source ~/.bashrc

これで、次のように入力してデータベースインスタンスに接続できます。

sqlcmd -U SA -S 127.0.0.1

以前に設定したパスワードの入力を求められます。認証に成功すると、SQLシェルに入ります。ここから、サーバーのバージョンを出力することで、すべてが動作していることを確認できます。

SELECT @@VERSION
GO
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Microsoft SQL Server 2019 (RTM-CU9) (KB5000642) - 15.0.4102.2 (X64)
Jan 25 2021 20:16:12
Copyright (C) 2019 Microsoft Corporation
Developer Edition (64-bit) on Linux (CentOS Linux 8) <X64>
(1 rows affected)

SQLシェルを終了してコマンドラインに戻るには、次のように入力します。

EXIT

Dockerを使用

Microsoftがパッケージを提供していないLinuxディストリビューションを使用している場合や、単にDockerを好む場合は、DockerでSQL Serverを実行するという別の選択肢があります。イメージを正常に実行するには、少なくとも2GBのメモリ(おそらくもう少し)が必要です。

まず、システムにDocker Engineがインストールされていることを確認してください。さまざまなプラットフォームの詳細な手順は、Docker Engineドキュメントで確認できます。

Dockerが起動して実行されたら、次のように入力してMicrosoft Container RegistryからSQL Server Dockerイメージをプルできます。

sudo docker pull mcr.microsoft.com/mssql/server:2019-latest

これにより、必要なすべてのイメージレイヤーがローカルシステムにダウンロードされ、起動が高速になります。

コンテナを起動する準備ができたら、次のコマンドを入力します。

<password>をご希望のパスワードに置き換え、イメージのパスワードポリシーに準拠する値を選択してください。本稿執筆時点でのポリシーは、「パスワードは8文字以上で、大文字、小文字、10進数字、記号の4つのうち3つ以上の文字種を含める必要があります」と定義されています。

sudo docker run --env "ACCEPT_EULA=Y" --env "SA_PASSWORD=<password>" --publish 1433:1433 --name mssql --hostname mssql --detach mcr.microsoft.com/mssql/server:2019-latest

SQL Serverコンテナはバックグラウンドで起動されます。表示される文字列は新しいコンテナのIDです。

次のように入力して、コンテナが起動して実行されていることを確認できます。

sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ffa9ef357b5c mcr.microsoft.com/mssql/server:2019-latest "/opt/mssql/bin/perm…" 2 minutes ago Up 2 minutes 0.0.0.0:1433->1433/tcp mssql
ae00765e36fb hello-world "/hello" 24 minutes ago Exited (0) 24 minutes ago dreamy_swanson

リストの中にmssqlコンテナが表示されるはずです。コンテナが実行されていない場合や問題がある場合は、ログを表示して役立つメッセージがあるか確認できます。

sudo docker logs mssql

SQL Serverコンテナにはデータベースサーバーがインストールされているだけでなく、sqlcmdコマンドラインクライアントを含むいくつかの一般的なツールも利用可能です。このクライアントを使用してデータベースインスタンスに接続するには、docker execを使用してコマンドにアクセスし、データベースに対して認証を行います。

sudo docker exec --interactive --tty mssql /opt/mssql-tools/bin/sqlcmd -U SA -S 127.0.0.1 -P "<password>"

コンテナ内のSQL Serverに認証され、SQLシェルに入ります。次のように入力して、すべてが正常に動作していることを確認できます。

SELECT @@VERSION;
GO
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Microsoft SQL Server 2019 (RTM-CU9) (KB5000642) - 15.0.4102.2 (X64)
Jan 25 2021 20:16:12
Copyright (C) 2019 Microsoft Corporation
Developer Edition (64-bit) on Linux (Ubuntu 18.04.5 LTS) <X64>
(1 rows affected)

SQLセッションを終了して通常のシェルに戻るには、次のように入力します。

EXIT

完了したらSQL Serverコンテナをシャットダウンするには、次のように入力して停止できます。

sudo docker stop mssql

コンテナインスタンス(内部のすべてのデータを含む!)を削除するには、次のように入力します。

sudo docker rm mssql

SQL Serverコンテナ内のデータを永続化するには、Microsoftのドキュメントに記載されている手法のいずれかを使用するか、Docker自身のデータボリュームをコンテナで使用する方法に関するドキュメントを参照してください。

FAQ

Microsoft SQL Serverの複数のバージョンがサポートされており、実行中のバージョンを特定する方法はいくつかあります。

Microsoftの記載されているいずれかの方法で、実行中のSQL Serverデータベースエンジンのバージョンとエディションが返されます。

SQL Serverには2つの無料の特別版がダウンロード可能です。Developer版とExpress版は、MicrosoftのSQL Serverページでダウンロードできます。

Developer版は、非本番環境での開発およびテストデータベースとして使用が許可された、フル機能の無料版です。

Express版は、デスクトップ、Web、および小規模サーバーアプリケーションの開発と本番に最適です。

SQL Server 2019 Developerは、非本番環境での開発およびテストデータベースとして使用が許可された、フル機能版です。

Azure SQLはSQL Serverをベースとしているため、機能性や互換性に多くの類似点があります。しかし、これは両者が同じであることを意味するものではありません。

Azure SQLは、AzureクラウドでSQL Serverデータベースエンジンを使用するマネージド製品群です。

SQL Server構成マネージャーは、SQL Serverに関連付けられたサービスを管理し、SQL Serverが使用するネットワークプロトコルを構成し、SQL Serverクライアントコンピューターからのネットワーク接続構成を管理するためのツールです。

構成マネージャーはSQL Serverのインストール時にインストールされ、スタートメニューから利用できるほか、他のMicrosoft管理コンソール表示に追加することもできます。

著者について
Justin Ellingwood

ジャスティン・エリイングウッド

ジャスティンは2013年からデータベース、Linux、インフラストラクチャ、開発者ツールについて執筆しています。現在は妻と2匹のウサギと共にベルリンに住んでいます。彼は通常、三人称で書く必要がないため、関係者全員にとって安心です。
© . All rights reserved.