私がやった手順の備忘録です。ご参考になれば幸いです。
環境
- Windows 11 Home 21H2 (22000.434)
- Ubuntu 20.04.3 LTS
- PostgreSQL 12.9 (Ubuntu 12.9-0ubuntu0.20.04.1)
手順
WSL2
まず WSL2 をインストールします。
管理者権限の PowerShell で次のコマンドを実行します。
wsl --install

このコマンドを実行すると次のアクションが実行されます。
- WSL コンポーネントを有効化
- Linux カーネルをインストール
- WSL2 を既定値として設定
- Ubuntu をインストール
これだけで WSL2 のインストールが完了します。
前よりすごく簡単になりましたね。インストールが終わったら PC を再起動しておきましょう。
管理者権限で PowerShell を開くには?
Windows 11 の検索欄に「PowerShell」と入力し「管理者として実行する」を選択すると開けます。

Ubuntu
Windows 11 のアプリに Ubuntu が追加されているので、そこからインストールした Ubuntu を起動させることが出来ます。

Ubuntu が起動するとまず初めに Ubuntu のユーザー名とパスワードの作成を求められます。

パスワードの入力時は ***(アスタリスク) も表示されませんが、問題ないので気にせず入力しましょう。

これで Ubuntu のインストールも完了です。メチャクチャ簡単になりましたね。
バージョン確認
せっかくなので Ubuntu のバージョンを確認しておきます。
cat /etc/os-release

PostgreSQL
初めに パッケージの更新とアップグレード を実行します。
sudo apt update && sudo apt upgrade

パッケージの更新が終わったら次のコマンドを実行して、PostgreSQL をインストールします。
sudo apt install postgresql postgresql-contrib

PostgreSQL のインストールが出来たら、下記コマンドでバージョン確認ができるようになります。正しくインストールできたかの確認にもなりますので、実行してみましょう。
psql --version

次のコマンドで PostgreSQL の状態を変えることができます。
PostgreSQL の状態を確認する
sudo service postgresql status
PostgreSQL を開始する
sudo service postgresql start
PostgreSQL を停止する
sudo service postgresql stop

シェルを使って PostgreSQL に接続する
PostgreSQLサービスが開始されている状態で、次のコマンドを使うとシェルに接続することができます。
sudo -u postgres psql

パスワードを設定する
外部から接続するにはパスワードを設定する必要があります。
次のコマンドを入力すると、パスワードを設定することができます。
ALTER ROLE postgres WITH PASSWORD 'postgres';

外部接続を有効にする
a5m2 や ロールPC の Python から接続したいため、外部接続を有効にします。
下記コマンドを入力して Ubuntu のフォルダーをエクスプローラーで開きます。
explorer.exe .

このコマンドを入力すると Windows 11 のエクスプローラーが開きます。

2回ほど上の階層に戻って Ubuntu の root ディレクトリに行きます。

そこから下記ディレクトリのファイルへ行って編集していきます。
/etc/postgresql/12/main/pg_hba.conf

たどり着いたらメモ帳で開いて、下記項目を修正します。
host all all 127.0.0.1/32 md5
↓
host all all all md5

/etc/postgresql/12/main/postgresql.conf

続いてこちらのファイルもメモ帳で開き、下記項目を修正します。
先頭の # (シャープ) を消して、 ‘localhost’ を ‘0.0.0.0’ に変更します。
#listen_addresses = 'localhost' # what IP address(es) to listen on;
↓
listen_addresses = '0.0.0.0' # what IP address(es) to listen on;

この2つの変更ができたら PostgreSQL を再起動して完了です。
sudo service postgresql restart

外部接続の確認
外部から SQL の実行をしたいので、PostgreSQL に接続します。
今回は a5m2 を使ってやってみましょう。
- サーバー名: Ubuntu のローカルIPアドレス
- データベース名: postgres
- ユーザーID: postgres
- パスワード: postgres

今回は上記設定で接続することができました。

参考

