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関連のセクションを見つけ、今すぐダウンロードをクリックします。
ダウンロードが完了したら、ファイルをダブルクリックしてインストーラーを実行します(プログラムがコンピューターに変更を加えることを許可するかどうか確認する必要がある場合があります)。
インストーラーの最初の画面で、実行したいインストールの種類を選択するよう求められます。
最も一般的なオプションを使用して通常のインストールを続行するには、基本を選択します。
次に、Developer Editionのライセンス条項に同意するよう求められます。
ライセンスを読み、条項に同意したら、同意するをクリックして続行します。
次に、インストール場所を確認または変更します。
準備ができたら、インストールをクリックしてインストールプロセスを開始します。
インストーラーは、SQL Serverをコンピューターにセットアップするためのコンポーネントのダウンロードとインストールを開始します。
インストールが完了すると、現在のインストールプロパティを示す画面が表示されます。
新しいSQL Serverインスタンスにすぐに接続するには、下部の今すぐ接続をクリックします。
新しいCmd
ウィンドウが表示され、sqlcmd
クライアントを使用してSQL Serverインスタンスに自動的にログインされます。
ウィンドウの上部にあるコメントに示されているように、いつでもsqlcmd
クライアントを使用してSQL Serverに手動で接続できます。
sqlcmd -S <yourhostname> -E
現在のSQLセッションを終了するには、次のように入力します。
EXIT
SQL ServerでPrisma Clientを使用している場合、SQL Serverコネクタを使用して接続し、モデルをマッピングし、データを管理できます。
また、新しいプロジェクトまたは既存のプロジェクトでMicrosoft SQL ServerとPrismaを使用する方法に関するガイドも確認できます。
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 NAMESffa9ef357b5c mcr.microsoft.com/mssql/server:2019-latest "/opt/mssql/bin/perm…" 2 minutes ago Up 2 minutes 0.0.0.0:1433->1433/tcp mssqlae00765e36fb 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:12Copyright (C) 2019 Microsoft CorporationDeveloper 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自身のデータボリュームをコンテナで使用する方法に関するドキュメントを参照してください。
SQL ServerでPrisma Clientを使用している場合、SQL Serverコネクタを使用して接続し、モデルをマッピングし、データを管理できます。
また、新しいプロジェクトまたは既存のプロジェクトでMicrosoft SQL ServerとPrismaを使用する方法に関するガイドも確認できます。
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 hyperthreaded7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum8) I bought a license through a retail sales channel and have a product key to enter.Details about editions can be found athttps://go.microsoft.com/fwlink/?LinkId=2109348&clcid=0x409Use of PAID editions of this software requires separate licensing through aMicrosoft Volume Licensing program.By choosing a PAID edition, you are verifying that you have the appropriatenumber 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=0x409The privacy statement can be viewed at:https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409Do 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"' >> ~/.bashrcecho 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
その後、上記の2つのファイルのいずれかを再読み込みして、現在のセッションの新しいPATH
を評価します。
source ~/.bashrc
これで、次のように入力してデータベースインスタンスに接続できます。
sqlcmd -U SA -S 127.0.0.1
以前に設定したパスワードの入力を求められます。認証に成功すると、SQLシェルに入ります。ここから、サーバーのバージョンを出力することで、すべてが動作していることを確認できます。
SELECT @@VERSIONGO
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Microsoft SQL Server 2019 (RTM-CU9) (KB5000642) - 15.0.4102.2 (X64)Jan 25 2021 20:16:12Copyright (C) 2019 Microsoft CorporationDeveloper Edition (64-bit) on Linux (Ubuntu 20.04.2 LTS) <X64>(1 rows affected)
SQLシェルを終了してコマンドラインに戻るには、次のように入力します。
EXIT
SQL ServerでPrisma Clientを使用している場合、SQL Serverコネクタを使用して接続し、モデルをマッピングし、データを管理できます。
また、新しいプロジェクトまたは既存のプロジェクトでMicrosoft SQL ServerとPrismaを使用する方法に関するガイドも確認できます。
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-python2 /usr/bin/python2Enter 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 hyperthreaded7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum8) I bought a license through a retail sales channel and have a product key to enter.Details about editions can be found athttps://go.microsoft.com/fwlink/?LinkId=2109348&clcid=0x409Use of PAID editions of this software requires separate licensing through aMicrosoft Volume Licensing program.By choosing a PAID edition, you are verifying that you have the appropriatenumber 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=0x409The privacy statement can be viewed at:https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409Do 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"' >> ~/.bashrcecho 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
その後、上記の2つのファイルのいずれかを再読み込みして、現在のセッションの新しいPATH
を評価します。
source ~/.bashrc
これで、次のように入力してデータベースインスタンスに接続できます。
sqlcmd -U SA -S 127.0.0.1
以前に設定したパスワードの入力を求められます。認証に成功すると、SQLシェルに入ります。ここから、サーバーのバージョンを出力することで、すべてが動作していることを確認できます。
SELECT @@VERSIONGO
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Microsoft SQL Server 2019 (RTM-CU9) (KB5000642) - 15.0.4102.2 (X64)Jan 25 2021 20:16:12Copyright (C) 2019 Microsoft CorporationDeveloper Edition (64-bit) on Linux (CentOS Linux 8) <X64>(1 rows affected)
SQLシェルを終了してコマンドラインに戻るには、次のように入力します。
EXIT
SQL ServerでPrisma Clientを使用している場合、SQL Serverコネクタを使用して接続し、モデルをマッピングし、データを管理できます。
また、新しいプロジェクトまたは既存のプロジェクトでMicrosoft SQL ServerとPrismaを使用する方法に関するガイドも確認できます。
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 NAMESffa9ef357b5c mcr.microsoft.com/mssql/server:2019-latest "/opt/mssql/bin/perm…" 2 minutes ago Up 2 minutes 0.0.0.0:1433->1433/tcp mssqlae00765e36fb 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:12Copyright (C) 2019 Microsoft CorporationDeveloper 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自身のデータボリュームをコンテナで使用する方法に関するドキュメントを参照してください。
SQL ServerでPrisma Clientを使用している場合、SQL Serverコネクタを使用して接続し、モデルをマッピングし、データを管理できます。
また、新しいプロジェクトまたは既存のプロジェクトでMicrosoft SQL ServerとPrismaを使用する方法に関するガイドも確認できます。
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管理コンソール表示に追加することもできます。