Linux 用 Windows サブシステム上のデータベースの概要

このステップバイステップ ガイドは、WSL でプロジェクトを初めてデータベースに接続するときに役立ちます。 MySQL、PostgreSQL、MongoDB、Redis、Microsoft SQL Server、または SQLite で作業を開始します。

前提条件

データベース システムによる相違点

データベース システムの一般的な選択肢には、次が含まれます:

MySQL は、オープンソースの SQL リレーショナル データベースで、データ型が互いに関連付け合う可能性がある 1 つ以上のテーブルにデータを編成します。 これは、垂直方向にスケーラブルです。つまり、1 つの最終的なマシンが処理を行います。 現在、4 つのデータベース システムで最も広く使用されています。

PostgreSQL (Postgres とも呼ばれる) もオープンソースの SQL リレーショナル データベースで、拡張性と標準への準拠を重視しています。 現在は JSON も処理できますが、一般的には、構造化データ、垂直方向の規模拡張、および、e コマースや金融取引などの ACID 準拠のニーズに適しています。

Microsoft SQL Server には、SQL Server on Windows、SQL Server on Linux、SQL on Azure が含まれます。 これらも、サーバー上に設定されたリレーショナル データベース管理システムで、ソフトウェア アプリケーションからの要求に応じてデータを格納および取得する主な機能を備えています。

SQLite は、オープンソースの自己格納型のファイル ベースの "サーバーレス" データベースであり、低メモリ環境での移植性、信頼性、優れたパフォーマンスで知られています。

MongoDB は、JSON で動作し、スキーマフリーのデータを格納するように設計された、オープンソースの NoSQL ドキュメント データベースです。 これは、水平方向にスケーラブルです。つまり、複数の小さなマシンが処理を行います。 柔軟性および非構造化データと、リアルタイム分析のキャッシュに適しています。

Redis は、オープンソースの NoSQL インメモリ データ構造ストアです。 ストレージにドキュメントではなくキーと値のペアが使用されます。

MySQL をインストールする

WSL で実行されている Linux ディストリビューションに MySQL をインストールするには、MySQL ドキュメントの 「Linux への MySQL のインストール」 の手順に従ってください。wsl.conf 構成ファイルで最初に systemd サポートを有効にする必要がある場合があります。

Ubuntu ディストリビューションの使用例:

  1. Ubuntu コマンド ラインを開き、使用可能なパッケージを更新します: sudo apt update
  2. パッケージが更新されたら、sudo apt install mysql-server を使用して MySQL をインストールします。
  3. mysql --version を実行してインストールを確認し、バージョン番号を取得します。
  4. MySQL サーバーの起動/状態の確認: systemctl status mysql
  5. MySQL プロンプトを開くには、「sudo mysql」と入力します。
  6. 使用可能なデータベースを確認するには、MySQL プロンプトで「SHOW DATABASES;」と入力します。
  7. 新しいデータベースを作成するには、「CREATE DATABASE database_name;」と入力します。
  8. データベースを削除するには、「 DROP DATABASE database_name;」と入力します。

MySQL データベースの操作の詳細については、MySQL のドキュメントを参照します。

VS Code で MySQL データベースを使用するには、MySQL 拡張機能を試します。

含まれているセキュリティ スクリプトを実行することもできます。 これにより、リモート ルート ログインやサンプル ユーザーなど、安全性の低い既定のオプションの一部が変更されます。 このスクリプトには、MySQL ルート ユーザーのパスワードを変更する手順も含まれています。 セキュリティ スクリプトを実行するには:

  1. sudo service mysql start を実行して MySQL サーバーを起動します。
  2. sudo mysql_secure_installation を実行して、セキュリティ スクリプト プロンプトを開始します。
  3. 最初のプロンプトでは、MySQL パスワードの強度をテストするために使用できる、VALIDATE PASSWORD COMPONENT を設定するかどうかを確認するメッセージが表示されます。 単純なパスワードを設定する場合は、このコンポーネントを設定しないでください。
  4. 次に、MySQL ルート ユーザーのパスワードを設定/変更し、匿名ユーザーを削除するかどうかを決定し、ルート ユーザーがローカルとリモートの両方でログインできるようにするかどうかを決定し、テスト データベースを削除するかどうかを決定し、最後に特権テーブルをすぐに再読み込みするかどうかを決定します。

PostgreSQL のインストール

WSL に PostgreSQL をインストールするには (つまり Ubuntu):

  1. WSL ターミナルを開きます (つまり Ubuntu)。
  2. sudo apt update を実行して Ubuntu パッケージを更新します。
  3. パッケージが更新されたら、sudo apt install postgresql postgresql-contrib を実行して PostgreSQL (およびいくつかの便利なユーティリティが含まれている -contrib パッケージ) をインストールします。
  4. psql --version を実行してインストールを確認し、バージョン番号を取得します。

PostgreSQL をインストールした後は、次の 3 つのコマンドについて覚えておく必要があります。

  • データベースの状態を確認する sudo service postgresql status
  • データベースの実行を開始する sudo service postgresql start
  • データベースの実行を停止する sudo service postgresql stop

既定の管理者ユーザー postgres には、データベースに接続するパスワードを割り当てる必要があります。 パスワードを設定するには:

  1. コマンド sudo passwd postgres を入力します。
  2. 新しいパスワードを入力するように求めるメッセージが表示されます。
  3. ターミナルを閉じ、開き直します。

psql シェルを使用して PostgreSQL を実行するには:

  1. sudo service postgresql start を実行して postgres サービスを開始します。
  2. sudo -u postgres psql を実行して postgres サービスに接続し、psql シェルを開きます。

正常に psql シェルに入ると、コマンドラインが postgres=# のように変わります。

Note

または、su - postgres を使用して postgres ユーザーに切り替え、コマンド psql を入力することで psql シェルを開くことができます。

postgres=# を終了するには、\q と入力するか、Ctrl + D のショートカット キーを使用します

PostgreSQL のインストールで作成されたユーザー アカウントを確認するには、WSL ターミナルから psql --command="\du" を使用します。または、psql シェルが開いている場合は、\du を実行します。 このコマンドにより、アカウントのユーザー名、ロール属性の一覧、ロール グループのメンバーの列が表示されます。 q を入力すると、終了してコマンド ラインに戻ります。

PostgreSQL データベースの操作の詳細については、PostgreSQL のドキュメントを参照します。

VS Code で PostgreSQL データベースを使用するには、PostgreSQL 拡張機能を試します。

MongoDB をインストールする

MongoDB をインストールするには、Mongodb のドキュメント: MongoDB Community Edition on Linux のインストール を参照してください

MongoDB をインストールする場合は、インストールに使用されている Linux ディストリビューションによっては、若干異なる手順が必要になることがあります。 また、インストールするバージョン番号によっても、MongoDB のインストールが異なる場合があることに注意します。 MongoDB ドキュメントの左上隅にあるバージョンのドロップダウン リストを使用して、目的に合わせてバージョンを選択します。 最後に、WSL で使用している Linux ディストリビューションの wsl.conf 構成ファイルで システムサポートを有効にする 必要がある場合があります。 この systemctl コマンドは systemd init システムの一部であり、ディストリビューションで systemv を使用している場合は機能しない可能性があります。

VS Code では、Azure CosmosDB 拡張機能による MongoDB データベースの操作がサポートされており、VS Code 内から MongoDB データベースの作成、管理、クエリ実行を行うことができます。 詳細については、VS Code のドキュメントで MongoDB の使用に関する説明を参照します。

詳細については、次の MongoDB のドキュメントを参照してください。

Microsoft SQL Server をインストールする

WSL によって実行される Linux ディストリビューションに SQL Server をインストールするには: SQL Server on Linux。 VS Code で Microsoft SQL Server データベースを操作するには、MSSQL 拡張機能を試します。

SQLite をインストールする

WSL に SQLite をインストールするには (つまり、Ubuntu):

  1. WSL ターミナルを開きます (つまり Ubuntu)。
  2. sudo apt update を実行して Ubuntu パッケージを更新します。
  3. パッケージが更新されたら、sudo apt install sqlite3 を実行して SQLite3 をインストールします。
  4. sqlite3 --version を実行してインストールを確認し、バージョン番号を取得します。

"example. db" という名前のテスト データベースを作成するには、「sqlite3 example.db」と入力します。

SQLite データベースの一覧を表示するには、「.databases」と入力します。

データベースの状態を確認するには、「.dbinfo ?DB?」と入力します。

作成後、データベースは空になります。 CREATE TABLE empty (kol INTEGER); を使用して、データベースの新しいテーブルを作成できます。

ここで を .dbinfo ?DB? 入力すると、作成したデータベースが表示されます。

SQLite プロンプトを終了するには、「.exit」と入力します。

SQLite データベースの操作の詳細については、SQLite のドキュメントを参照します。

VS Code で SQLite データベースを使用するには、SQLite 拡張機能を試します。

Redis をインストールする

Redis を WSL にインストールするには (つまり、 Ubuntu):

  1. WSL ターミナルを開きます (つまり Ubuntu)。
  2. sudo apt update を実行して Ubuntu パッケージを更新します。
  3. パッケージが更新されたら、sudo apt install redis-server を実行して Redis をインストールします。
  4. redis-server --version を実行してインストールを確認し、バージョン番号を取得します。

Redis サーバーの実行を開始するには、sudo service redis-server start を実行します。

Redis が動作しているかどうかを確認します (redis-cli は、Redis と対話するためのコマンド ライン インターフェイス ユーティリティです)。redis-cli ping を実行すると、"PONG" という応答が返されます。

Redis サーバーの実行を停止するには、sudo service redis-server stop を実行します。

Redis データベースの使用方法の詳細については、Redis のドキュメントを参照します。

VS Code で Redis データベースを使用するには、Redis 拡張機能を試します。

サービスの実行を確認しプロファイルの別名を設定する

現在 WSL ディストリビューションで実行されているサービスを表示するには、「service --status-all」と入力します。

sudo service mongodb startsudo service postgres startsudo -u postgrest psql などの入力は面倒な場合があります。 これらのコマンドをすばやく使えるように、また覚えやすくするために、WSL 上の .profile ファイルでエイリアスを設定することを検討してください。

これらのコマンドを実行するためのカスタム エイリアス (ショートカット) を設定するには、次の手順を実行します。

  1. WSL ターミナルを開き、cd ~ と入力してルート ディレクトリに移動します。

  2. sudo nano .profile と入力して、ターミナルの設定を制御する .profile ファイルを、ターミナルのテキスト エディター Nano で開きます。

  3. ファイルの最後に次の内容を追加します (# set PATH 設定は変更しないでください)。

    # My Aliases
    alias start-pg='sudo service postgresql start'
    alias run-pg='sudo -u postgres psql'
    

    以後、start-pg と入力して postgresql サービスの実行を開始し、run-pg と入力して psql シェルを開くことができます。 start-pg および run-pg は任意の名前に変更できますが、postgres が既に使用しているコマンドを上書きしないよう注意してください。

  4. 新しいエイリアスを追加したら、Ctrl + X キーを使用して Nano テキスト エディターを終了し、保存の確認に対して Y (はい) を選択して Enter キーを押します (ファイル名は .profile のままにします)。

  5. WSL ターミナルを閉じて開き直してから、新しいエイリアス コマンドを試してみてください。

トラブルシューティング

エラー: ディレクトリ同期 fdatasync の無効な引数

WSL 2 モードで Linux ディストリビューションを実行していることを確認します。 WSL 1 から WSL 2 への切り替えの詳細については、ディストリビューションのバージョンを WSL 1 または WSL 2 に設定する方法に関する説明を参照します。

その他のリソース