peer(pg_hba.conf)

新しいロールを追加して、それでpsql起動しようとして失敗するのは、pg_hba.confの設定が原因。

https://www.postgresql.jp/docs/9.4/auth-pg-hba-conf.html

createuserに"-P"オプションで、パスワードをセットする形で追加。

postgres@vbox:~$ createuser -P testuser1
新しいロールのためのパスワード:
もう一度入力してください:
postgres@vbox:~$ psql
psql (16.8)
"help"でヘルプを表示します。

postgres=# \du
                                        ロール一覧
 ロール名  |                                     属性                                    
-----------+------------------------------------------------------------------------------
 postgres  | スーパーユーザー, ロール作成可, DB作成可, レプリケーション可, RLS のバイパス
 testuser1 |

postgres=# exit
postgres@vbox:~$ psql -U testuser1
psql: エラー: ソケット"/var/run/postgresql/.s.PGSQL.5432"のサーバーへの接続に失敗しました: FATAL:  ユーザー"testuser1"で対向(peer)認証に失敗しました
postgres@vbox:~$

"\du"で追加はされてるはずだが、認証に失敗。

postgres@vbox:~/data$ pwd
/var/lib/pgsql/data
postgres@vbox:~/data$ vi pg_hba.conf

このpg_hba.confを見ると、

localがpeerだと、"Linuxユーザ"のtestuser1で起動しないと認証失敗する。
localがpeerだと、"Linuxユーザ"のtestuser1で起動しないと認証失敗する。

localがpeerだと、"Linuxユーザ"のtestuser1で起動しないと認証失敗する。

root@vbox:/home/bg1# adduser testuser1
root@vbox:/home/bg1# passwd testuser1
新しいパスワード:
新しいパスワードを再入力してください:
passwd: パスワードは正しく更新されました
root@vbox:/home/bg1#

わざわざアカウント作成。

postgres@vbox:~$ su testuser1
パスワード:
testuser1@vbox:/var/lib/pgsql$ psql -U testuser1
psql: エラー: ソケット"/var/run/postgresql/.s.PGSQL.5432"のサーバーへの接続に失敗しました: FATAL:  データベース"testuser1"は存在しません
testuser1@vbox:/var/lib/pgsql$ psql -U testuser1 -d postgres
psql (16.8)
"help"でヘルプを表示します。

postgres=>

あと、testuser1でpsql起動しようとすると、データベースもtestuser1を探しに行こうとして、まだ存在しないからエラーになる。
とりあえずデータベースをpostgresにすれば起動自体は成功する。