クイック スタート:Red Hat に SQL Server をインストールし、データベースを作成する
適用対象:SQL Server - Linux
このクイックスタートでは、Red Hat Enterprise Linux (RHEL) 8.x に SQL Server 2017 (14.x) をインストールします。 その後、sqlcmd と接続して最初のデータベースを作成し、クエリを実行できます。
サポートされているプラットフォームの詳細については、「Linux 上の SQL Server 2017 のリリース ノート」を参照してください。
このクイックスタートでは、Red Hat Enterprise Linux (RHEL) 8.x に SQL Server 2019 (15.x) をインストールします。 その後、sqlcmd と接続して最初のデータベースを作成し、クエリを実行できます。
サポートされているプラットフォームの詳細については、「Linux 上の SQL Server 2019 のリリース ノート」を参照してください。
このクイックスタートでは、Red Hat Enterprise Linux (RHEL) 8.x に SQL Server 2022 (16.x) をインストールします。 その後、sqlcmd と接続して最初のデータベースを作成し、クエリを実行できます。
サポートされているプラットフォームの詳細については、「Linux 上の SQL Server 2022 (16.x) のリリース ノート」を参照してください。
ヒント
このチュートリアルには、ユーザー入力とインターネット接続が必要です。 無人またはオフラインのインストール手順について関心をお持ちの場合は、SQL Server on Linux のインストール ガイダンスに関する記事を参照してください。 運用環境ベースのワークロードを実行する準備ができている RHEL にプレインストールされた SQL Server VM を選ぶ場合、SQL Server VM の作成についてはベスト プラクティスに従ってください。
Azure Marketplace のイメージ
次の Azure Marketplace イメージに基づいて VM を作成できます。
上記の Marketplace イメージを使用する場合は、インストール手順を回避し、SQL Server の使用を開始するために必要な SKU とパスワード sa
を指定することで、インスタンスを直接構成できます。 上記の Marketplace イメージを使用して RHEL にデプロイされた Azure VM の SQL Server は、Microsoft と Red Hat の両方で完全にサポートされています。
mssql-conf で SQL Server on Linux を構成するには、次のコマンドを使用します。
sudo /opt/mssql/bin/mssql-conf setup
前提条件
RHEL 8.0 から 8.6 のマシンには少なくとも 2 GB のメモリが必要です。
自分のコンピューターに Red Hat Enterprise Linux をインストールする方法については、https://access.redhat.com/products/red-hat-enterprise-linux/evaluation にお進みください。 Azure で RHEL 仮想マシンを作成することもできます。 「Azure CLI を使用した Linux VM の作成と管理」を参照し、az vm create
の呼び出しで --image RHEL
を使用します。
SQL Server の Community Technology Preview (CTP) またはリリース候補 (RC) を既にインストールしている場合、この手順を行う前に、古いリポジトリを削除する必要があります。 詳細については、SQL Server に Linux リポジトリを構成する方法に関するページを参照してください。
他のシステム要件については、SQL Server on Linux のシステム要件に関する記事を参照してください。
SQL Server をインストールする
SQL Server をインストールする次のコマンドでは、RHEL 8 のリポジトリが参照されています。 RHEL 8 には、SQL Server に必要な python2
がプレインストールされていません。 SQL Server のインストール手順を開始する前に、コマンドを実行し、インタープリターとして python2
が選択されていることを確認します。
sudo alternatives --config python
# If not configured, install python2 and openssl10 using the following commands:
sudo yum install python2
sudo yum install compat-openssl10
# Configure python2 as the default interpreter using this command:
sudo alternatives --config python
詳細については、python2
のインストールと既定のインタープリターとしての構成に関する次のブログを参照してください: https://www.redhat.com/en/blog/installing-microsoft-sql-server-red-hat-enterprise-linux-8-beta。
RHEL 上で SQL Server を構成するには、ターミナルで次のコマンドを実行して mssql-server
パッケージをインストールします。
SQL Server 2017 (14.x) Red Hat リポジトリ構成ファイルをダウンロードします。
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2017.repo
ヒント
別のバージョンの SQL Server をインストールする場合は、この記事の SQL Server 2019 (15.x) または SQL Server 2022 (16.x) バージョンを参照してください。
次のコマンドを実行して SQL Server をインストールします。
sudo yum install -y mssql-server
パッケージのインストールが完了したら、完全なパスを使用して
mssql-conf setup
を実行し、プロンプトに従って SA パスワードを設定して、エディションを選択します。 次の SQL Server エディションは無料でライセンスが付与されます。Evaluation、Developer、Express。sudo /opt/mssql/bin/mssql-conf setup
SA アカウントには必ず強力なパスワードを指定してください。 大文字と小文字、10 進数の数字、英数字以外の記号を含む、最小 8 文字が必要です。
構成が完了したら、サービスが実行されていることを確認します。
systemctl status mssql-server
リモート接続を許可するには、RHEL のファイアウォールで SQL Server ポートを開きます。 既定の SQL Server ポートは TCP 1433 です。 ファイアウォールに FirewallD を使用している場合、次のコマンドを使用できます。
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent sudo firewall-cmd --reload
この時点で、SQL Server は RHEL コンピューター上で動作しており、使用する準備ができています。
SQL Server をインストールする次のコマンドでは、RHEL 8 のリポジトリが参照されています。 RHEL 8 には、SQL Server に必要な python2
がプレインストールされていません。 SQL Server のインストール手順を開始する前に、コマンドを実行し、インタープリターとして python2
が選択されていることを確認します。
sudo alternatives --config python
# If not configured, install python2 and openssl10 using the following commands:
sudo yum install python2
sudo yum install compat-openssl10
# Configure python2 as the default interpreter using this command:
sudo alternatives --config python
詳細については、python2
のインストールと既定のインタープリターとしての構成に関する次のブログを参照してください: https://www.redhat.com/en/blog/installing-microsoft-sql-server-red-hat-enterprise-linux-8-beta。
RHEL 上で SQL Server を構成するには、ターミナルで次のコマンドを実行して mssql-server
パッケージをインストールします。
SQL Server 2019 (15.x) Red Hat リポジトリ構成ファイルをダウンロードします。
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo
ヒント
別のバージョンの SQL Server をインストールする場合は、この記事の SQL Server 2017 (14.x) または SQL Server 2022 (16.x) バージョンを参照してください。
次のコマンドを実行して SQL Server をインストールします。
sudo yum install -y mssql-server
パッケージのインストールが完了したら、完全なパスを使用して
mssql-conf setup
を実行し、プロンプトに従って SA パスワードを設定して、エディションを選択します。 次の SQL Server エディションは無料でライセンスが付与されます。Evaluation、Developer、Express。sudo /opt/mssql/bin/mssql-conf setup
SA アカウントには必ず強力なパスワードを指定してください。 大文字と小文字、10 進数の数字、英数字以外の記号を含む、最小 8 文字が必要です。
構成が完了したら、サービスが実行されていることを確認します。
systemctl status mssql-server
リモート接続を許可するには、RHEL のファイアウォールで SQL Server ポートを開きます。 既定の SQL Server ポートは TCP 1433 です。 ファイアウォールに FirewallD を使用している場合、次のコマンドを使用できます。
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent sudo firewall-cmd --reload
この時点で、SQL Server は RHEL コンピューター上で動作しており、使用する準備ができています。
SQL Server をインストールする次のコマンドでは、RHEL 8 のリポジトリが参照されています。
RHEL 上で SQL Server を構成するには、ターミナルで次のコマンドを実行して mssql-server
パッケージをインストールします。
SQL Server 2022 (16.x) Red Hat リポジトリ構成ファイルをダウンロードします。
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2022.repo
ヒント
別のバージョンの SQL Server をインストールする場合は、この記事の SQL Server 2017 (14.x) または SQL Server 2019 (15.x) プレビュー バージョンを参照してください。
次のコマンドを実行して SQL Server をインストールします。
sudo yum install -y mssql-server
パッケージのインストールが完了したら、完全なパスを使用して
mssql-conf setup
を実行し、プロンプトに従って SA パスワードを設定して、エディションを選択します。 次の SQL Server エディションは無料でライセンスが付与されます。Evaluation、Developer、Express。sudo /opt/mssql/bin/mssql-conf setup
SA アカウントには必ず強力なパスワードを指定してください。 大文字と小文字、10 進数の数字、英数字以外の記号を含む、最小 8 文字が必要です。
構成が完了したら、サービスが実行されていることを確認します。
systemctl status mssql-server
リモート接続を許可するには、RHEL のファイアウォールで SQL Server ポートを開きます。 既定の SQL Server ポートは TCP 1433 です。 ファイアウォールに FirewallD を使用している場合、次のコマンドを使用できます。
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent sudo firewall-cmd --reload
この時点で、SQL Server は RHEL コンピューター上で動作しており、使用する準備ができています。
SQL Server コマンドライン ツールをインストールする
データベースを作成するには、SQL Server 上で Transact-SQL ステートメントを実行できるツールを使用して接続する必要があります。 次の手順で SQL Server コマンドライン ツールの sqlcmd と bcp をインストールします。
Red Hat リポジトリ構成ファイルをダウンロードします。
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo
旧版の mssql-tools がインストールされている場合、古い unixODBC パッケージはすべて削除してください。
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel
次のコマンドを実行し、unixODBC 開発者パッケージと共に mssql-tools をインストールします。 詳細については、「Microsoft ODBC Driver for SQL Server をインストールする (Linux)」を参照してください。
sudo yum install -y mssql-tools unixODBC-devel
便宜上、
PATH
環境変数に/opt/mssql-tools/bin/
を追加して、bash シェルから sqlcmd または bcp にアクセスできるようにします。対話型セッションの場合は、次のコマンドを使用して
~/.bash_profile
ファイル内のPATH
環境変数を変更します。echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
対話型以外のセッションの場合は、次のコマンドを使用して
~/.bashrc
ファイル内のPATH
環境変数を変更します。echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc
ローカル接続
次の手順では、sqlcmd を使用して新しい SQL Server インスタンスにローカル接続します。
sqlcmd に SQL Server 名 (
-S
)、ユーザー名 (-U
)、およびパスワード (-P
) のパラメーターを指定して実行します。 このチュートリアルでは、ローカルに接続するため、サーバー名はlocalhost
です。 ユーザー名はsa
で、パスワードはセットアップ時に SA アカウントに指定したものです。sqlcmd -S localhost -U sa -P '<YourPassword>'
コマンド ラインでパスワードを省略すると、入力を求められます。
後でリモート接続する場合は、
-S
パラメーターとしてコンピューター名または IP アドレスを指定し、ファイアウォールでポート 1433 が開いていることを確認してください。成功すると、sqlcmd コマンド プロンプト
1>
が表示されます。接続エラーが発生した場合は、まずエラー メッセージから問題を診断します。 次に、接続のトラブルシューティングに関する推奨事項を確認します。
データの作成とクエリ
以下のセクションでは、sqlcmd を使用して新しいデータベースを作成し、データを追加して簡単なクエリを実行します。
Transact-SQL ステートメントおよびクエリの作成の詳細については、「Tutorial: Writing Transact-SQL Statements (チュートリアル: TRANSACT-SQL ステートメントの作成)」を参照してください。
新しいデータベースの作成
次の手順では、TestDB
という名前の新しいデータベースを作成します。
sqlcmd のコマンド プロンプトに次の Transact-SQL コマンドを貼り付け、テスト データベースを作成します。
CREATE DATABASE TestDB;
次の行に、サーバー上のすべてのデータベースの名前を返すクエリを記述します。
SELECT Name from sys.databases;
前の 2 つのコマンドは、すぐに実行されていません。 前のコマンドを実行するには、新しい行に「
GO
」と入力する必要があります。GO
データの挿入
次に、新しいテーブル dbo.Inventory
を作成し、2 つの新しい行を挿入します。
sqlcmd のコマンド プロンプトで、コンテキストを新しい
TestDB
データベースに切り替えます。USE TestDB;
dbo.Inventory
という名前の新しいテーブルを作成します。CREATE TABLE dbo.Inventory ( id INT, name NVARCHAR(50), quantity INT );
新しいテーブルにデータを挿入します。
INSERT INTO dbo.Inventory VALUES (1, 'banana', 150); INSERT INTO dbo.Inventory VALUES (2, 'orange', 154);
「
GO
」と入力して前のコマンドを実行します。GO
データの選択
ここで、dbo.Inventory
テーブルからデータを返すクエリを実行します。
sqlcmd のコマンド プロンプトで、数量が 152 より大きい
dbo.Inventory
テーブルから行を返すクエリを入力します。SELECT * FROM dbo.Inventory WHERE quantity > 152;
次のコマンドを実行します。
GO
sqlcmd コマンド プロンプトの終了
sqlcmd セッションを終了するには、「QUIT
」と入力します。
QUIT
パフォーマンスのベスト プラクティス
SQL Server on Linux をインストールしたら、運用シナリオでのパフォーマンスの向上に、Linux と SQL Server の構成のベスト プラクティスを確認してください。 詳細については、「パフォーマンスのベスト プラクティスと SQL Server on Linux の構成ガイドライン」を参照してください。
クロスプラットフォーム データツール
SQL Server の管理には、sqlcmd 以外に次のクロスプラットフォーム ツールを使用できます。
ツール | 説明 |
---|---|
Azure Data Studio | クロスプラットフォームの GUI データベース管理ユーティリティ。 |
Visual Studio Code | Transact-SQL ステートメントを mssql 拡張機能を使用して実行するクロスプラットフォーム GUI コードエディター。 |
PowerShell Core | コマンドレットを使用する、クロスプラットフォームの自動化および構成ツール。 |
mssql-cli | Transact-SQL コマンドを実行するクロスプラットフォーム コマンドライン インターフェイス。 |
Windows からの接続
Windows 上の SQL Server ツールは、あらゆるリモート SQL Server インスタンスへの接続と同じ方法で Linux 上の SQL Server インスタンスに接続します。
Linux コンピューターに接続できる Windows コンピューターがある場合は、sqlcmd を実行する Windows コマンド プロンプトから、このトピックと同じ手順を試してみてください。 localhost
ではなくターゲットの Linux コンピューター名または IP アドレスを使用する必要があります。また、SQL Server マシンで TCP ポート 1433 が開いていることを確かめます。 Windows からの接続に問題がある場合は、接続のトラブルシューティングに関する推奨事項を参照してください。
Windows で実行し、Linux 上の SQL Server に接続するその他のツールについては、以下を参照してください。
その他の展開シナリオ
他のインストール シナリオについては、次のリソースを参照してください。
- アップグレード:Linux 上の SQL Server のアップグレード方法および既存のインストールについて説明する
- Uninstall:Linux 上の SQL Server をアンインストールする
- 無人インストール:プロンプトを表示せずにインストールするスクリプトを作成する方法を説明する
- オフライン インストール:オフライン インストール パッケージを手動でダウンロードする方法を説明する
よく寄せられる質問に対する回答については、「SQL Server on Linux に関する FAQ」を参照してください。