質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

1回答

283閲覧

postgreSQL 14のパスワード認証が、Ubuntu22.04/WSL2では失敗するが、Ubuntu22.04/EC2では問題が起こらない

cookie2021

総合スコア11

WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2023/12/30 02:36

編集2023/12/30 13:38

実現したいこと

  1. Ubuntu22.04にPostgreSQLをインストール
  2. データベースdb_testとロールrole_testを作成し、db_testの所有者をrole_testに変更
  3. 作成したデータベースとユーザーでPostgreSQLに接続

bash

1sudo apt install postgresql postgresql-contrib libpq-dev 2 3sudo -u postgres psql 4create database db_test; 5create role role_test with login password '1234'; 6alter database db_test owner to role_test; 7exit 8 9psql -h localhost -p 5432 -U role_test -d db_test

発生している問題・分からないこと

  • WSL2上のUbuntu22.04では、上記手順 3. で認証エラーが発生して接続できない。
  • EC2上のUbuntu22.04では、同じ手順で問題なく接続可能。

WSL2の場合

bash

1ubuntu@DESKTOP-xxxxxxx:~$ psql -h localhost -p 5432 -U role_test -d db_test 2Password for user role_test: 3# (パスワードを入力) 4psql: error: connection to server at "localhost" (127.0.0.1), port 5432 failed: FATAL: password authentication failed for user "role_test" 5connection to server at "localhost" (127.0.0.1), port 5432 failed: FATAL: password authentication failed for user "role_test"

EC2の場合

bash

1ubuntu@ip-x-x-x-x:~$ psql -h localhost -p 5432 -U role_test -d db_test 2Password for user role_test: 3# (パスワードを入力) 4psql (14.10 (Ubuntu 14.10-0ubuntu0.22.04.1)) 5SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off) 6Type "help" for help. 7 8db_test=>

エラーメッセージ

error

1上記参照______

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

WSL2もEC2も、以下は同一でした。

  • Ubuntuのバージョン
  • PostgreSQLのバージョン
  • pg_hba.confの内容

WSL2の場合

bash

1ubuntu@DESKTOP-xxxxxxx:~/Project$ cat /etc/os-release 2PRETTY_NAME="Ubuntu 22.04.3 LTS" 3NAME="Ubuntu" 4VERSION_ID="22.04" 5VERSION="22.04.3 LTS (Jammy Jellyfish)" 6VERSION_CODENAME=jammy 7ID=ubuntu 8ID_LIKE=debian 9HOME_URL="https://www.ubuntu.com/" 10SUPPORT_URL="https://help.ubuntu.com/" 11BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" 12PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" 13UBUNTU_CODENAME=jammy 14 15# ========================================= 16psql -V 17psql (PostgreSQL) 14.10 (Ubuntu 14.10-0ubuntu0.22.04.1) 18 19sudo nano /etc/postgresql/14/main/pg_hba.conf 20 21# ... 22local all postgres peer 23 24# TYPE DATABASE USER ADDRESS METHOD 25 26# "local" is for Unix domain socket connections only 27local all all peer 28# IPv4 local connections: 29host all all 127.0.0.1/32 scram-sha-256 30# IPv6 local connections: 31host all all ::1/128 scram-sha-256 32# Allow replication connections from localhost, by a user with the 33# replication privilege. 34local replication all peer 35host replication all 127.0.0.1/32 scram-sha-256 36host replication all ::1/128 scram-sha-256

EC2の場合

bash

1ubuntu@ip-x-x-x-x:~$ cat /etc/os-release 2PRETTY_NAME="Ubuntu 22.04.3 LTS" 3NAME="Ubuntu" 4VERSION_ID="22.04" 5VERSION="22.04.3 LTS (Jammy Jellyfish)" 6VERSION_CODENAME=jammy 7ID=ubuntu 8ID_LIKE=debian 9HOME_URL="https://www.ubuntu.com/" 10SUPPORT_URL="https://help.ubuntu.com/" 11BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" 12PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" 13UBUNTU_CODENAME=jammy 14 15# ========================================= 16psql -V 17psql (PostgreSQL) 14.10 (Ubuntu 14.10-0ubuntu0.22.04.1) 18 19sudo nano /etc/postgresql/14/main/pg_hba.conf 20 21# ... 22local all postgres peer 23 24# TYPE DATABASE USER ADDRESS METHOD 25 26# "local" is for Unix domain socket connections only 27local all all peer 28# IPv4 local connections: 29host all all 127.0.0.1/32 scram-sha-256 30# IPv6 local connections: 31host all all ::1/128 scram-sha-256 32# Allow replication connections from localhost, by a user with the 33# replication privilege. 34local replication all peer 35host replication all 127.0.0.1/32 scram-sha-256 36host replication all ::1/128 scram-sha-256

補足

WSLでは、Ubuntuシステム上に以下の手順でユーザーubuntuというを作成し、システムのデフォルトユーザーを変更してあります。

bash

1sudo adduser ubuntu 2sudo gpasswd -a ubuntu sudo 3 4sudo nano /etc/wsl.conf 5# 以下追記 6[user] 7default=ubuntu

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

WSLのPostgreSQLがポート5432ではなく、5434で起動していた事が原因でした。(そんなー!?)

bash

1ubuntu@DESKTOP-xxxxxxx:~$ sudo cat /var/log/postgresql/postgresql-14-main.log 22023-12-30 07:23:52.652 JST [3630] LOG: starting PostgreSQL 14.10 (Ubuntu 14.10-0ubuntu0.22.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit 32023-12-30 07:23:52.653 JST [3630] LOG: listening on IPv4 address "127.0.0.1", port 5434 42023-12-30 07:23:52.659 JST [3630] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5434" 52023-12-30 07:23:52.671 JST [3631] LOG: database system was shut down at 2023-12-30 07:23:49 JST 62023-12-30 07:23:52.679 JST [3630] LOG: database system is ready to accept connections

というわけで、

bash

1ubuntu@DESKTOP-xxxxxxx:~$ psql -h localhost -p 5434 -U role_test -d db_test 2Password for user role_test: 3psql (14.10 (Ubuntu 14.10-0ubuntu0.22.04.1)) 4SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off) 5Type "help" for help. 6 7db_test=>

解決しました。

投稿2023/12/30 04:38

cookie2021

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問