WSL2 で PostgreSQL をインストールして触る
WSL2 Ubuntu 環境に PostgreSQL v12 をインストールしてみた。
$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt dist-upgrade -y
$ sudo apt auto-remove -y
# PostgreSQL をインストールする
$ sudo apt install postgresql
$ psql --version
psql (PostgreSQL) 12.14 (Ubuntu 12.14-0ubuntu0.20.04.1)
# ログインを試みるがエラーになる
$ psql -U postgres -d postgres
psql: FATAL: Peer authentication failed for user "postgres"
デフォルトでは、Linux 上で postgres
ユーザに切り替えないとアクセスできないみたい。コレを HBA (Host Base Authentication) 機能の Peer 認証というらしい。
以下の設定ファイルを開き、3箇所出てくる peer
部分を trust
に変えた。
$ sudo vi /etc/postgresql/12/main/pg_hba.conf
# サービスを再起動する
$ sudo /etc/init.d/postgresql restart
# アクセスできるようになる
$ psql -U postgres -d postgres
psql (12.14 (Ubuntu 12.14-0ubuntu0.20.04.1))
Type "help" for help.
postgres=#
ホスト未指定だとパスワードも求められずにアクセスできたが、-h
オプションで localhost
を指定すると、パスワードを入力しろと言われてしまう。そこで、予めパスワードを設定しておく。
postgres=# ALTER USER postgres PASSWORD 'my-password';
ALTER ROLE
postgres=# \q
$ psql -h localhost -p 5432 -U postgres -d postgres
Password for user postgres: # パスワード入力する
psql (12.14 (Ubuntu 12.14-0ubuntu0.20.04.1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
postgres=#
このとおり、-h localhost
を書いてもアクセスできるようになった。