私がやった手順の備忘録です。ご参考になれば幸いです。
環境
- Windows 11 Home 21H2 (22000.434)
- Ubuntu 20.04.3 LTS
- PostgreSQL 12.9 (Ubuntu 12.9-0ubuntu0.20.04.1)
手順
WSL2
まず WSL2 をインストールします。
管理者権限の PowerShell で次のコマンドを実行します。
1 | wsl --install |
このコマンドを実行すると次のアクションが実行されます。
- WSL コンポーネントを有効化
- Linux カーネルをインストール
- WSL2 を既定値として設定
- Ubuntu をインストール
これだけで WSL2 のインストールが完了します。
前よりすごく簡単になりましたね。インストールが終わったら PC を再起動しておきましょう。
管理者権限で PowerShell を開くには?
Windows 11 の検索欄に「PowerShell」と入力し「管理者として実行する」を選択すると開けます。
Ubuntu
Windows 11 のアプリに Ubuntu が追加されているので、そこからインストールした Ubuntu を起動させることが出来ます。
Ubuntu が起動するとまず初めに Ubuntu のユーザー名とパスワードの作成を求められます。
パスワードの入力時は ***(アスタリスク) も表示されませんが、問題ないので気にせず入力しましょう。
これで Ubuntu のインストールも完了です。メチャクチャ簡単になりましたね。
バージョン確認
せっかくなので Ubuntu のバージョンを確認しておきます。
1 | cat /etc/os-release |
PostgreSQL
初めに パッケージの更新とアップグレード を実行します。
1 | sudo apt update && sudo apt upgrade |
パッケージの更新が終わったら次のコマンドを実行して、PostgreSQL をインストールします。
1 | sudo apt install postgresql postgresql-contrib |
PostgreSQL のインストールが出来たら、下記コマンドでバージョン確認ができるようになります。正しくインストールできたかの確認にもなりますので、実行してみましょう。
1 | psql --version |
次のコマンドで PostgreSQL の状態を変えることができます。
PostgreSQL の状態を確認する
1 | sudo service postgresql status |
PostgreSQL を開始する
1 | sudo service postgresql start |
PostgreSQL を停止する
1 | sudo service postgresql stop |
シェルを使って PostgreSQL に接続する
PostgreSQLサービスが開始されている状態で、次のコマンドを使うとシェルに接続することができます。
1 | sudo -u postgres psql |
パスワードを設定する
外部から接続するにはパスワードを設定する必要があります。
次のコマンドを入力すると、パスワードを設定することができます。
1 | ALTER ROLE postgres WITH PASSWORD 'postgres'; |
外部接続を有効にする
a5m2 や ロールPC の Python から接続したいため、外部接続を有効にします。
下記コマンドを入力して Ubuntu のフォルダーをエクスプローラーで開きます。
1 | explorer.exe . |
このコマンドを入力すると Windows 11 のエクスプローラーが開きます。
2回ほど上の階層に戻って Ubuntu の root ディレクトリに行きます。
そこから下記ディレクトリのファイルへ行って編集していきます。
/etc/postgresql/12/main/pg_hba.conf
たどり着いたらメモ帳で開いて、下記項目を修正します。
1 | host all all 127.0.0.1/32 md5 |
/etc/postgresql/12/main/postgresql.conf
続いてこちらのファイルもメモ帳で開き、下記項目を修正します。
先頭の # (シャープ) を消して、 ‘localhost’ を ‘0.0.0.0’ に変更します。
1 | #listen_addresses = 'localhost' # what IP address(es) to listen on; |
この2つの変更ができたら PostgreSQL を再起動して完了です。
1 | sudo service postgresql restart |
外部接続の確認
外部から SQL の実行をしたいので、PostgreSQL に接続します。
今回は a5m2 を使ってやってみましょう。
- サーバー名: Ubuntu のローカルIPアドレス
- データベース名: postgres
- ユーザーID: postgres
- パスワード: postgres
今回は上記設定で接続することができました。
参考
https://docs.microsoft.com/ja-jp/windows/wsl/setup/environment
https://docs.microsoft.com/ja-jp/windows/wsl/tutorials/wsl-database#install-postgresql