Postgresユーザーに変更後、psqlを実行した際、タイトルのエラーが出てしまうようになりました。
postgres@pos:~$ psql
psql: エラー: ソケット"/var/run/postgresql/.s.PGSQL.5432"のサーバーへの接続に失敗しました: No such file or directory
サーバーはローカルで稼働していてそのソケットで接続を受け付けていますか?
一般ユーザーでステータスを確認します。
user@pos:~$ sudo pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
15 main 5432 down postgres /var/lib/postgresql/15/main /var/log/postgresql/postgresql-15-main.log
postageSQLがダウンしているようです。
postageSQL起動をここみるもエラーを確認するようメッセージが表示されます。
user@pos:~$ sudo pg_ctlcluster 15 main start
Job for postgresql@15-main.service failed because the service did not take the steps required by its unit configuration.
See "systemctl status postgresql@15-main.service" and "journalctl -xeu postgresql@15-main.service" for details.
上記でステータス確認時に表示されていたログを見てみます。
user@pos:~$ sudo cat /var/log/postgresql/postgresql-15-main.log
2023-08-11 10:35:22.428 JST [13334] LOG: PostgreSQL 15.3 (Ubuntu 15.3-1.pgdg22.04+1) on aarch64-unknown-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0, 64-bit を起動しています
2023-08-11 10:35:22.428 JST [13334] LOG: IPv4アドレス"127.0.0.1"、ポート5432で待ち受けています
2023-08-11 10:35:22.428 JST [13334] LOG: Unixソケット"/var/run/postgresql/.s.PGSQL.5432"で待ち受けています
2023-08-11 10:35:22.429 JST [13334] LOG: 設定ファイル"/etc/postgresql/15/main/pg_hba.conf"をオープンできませんでした: Permission denied
2023-08-11 10:35:22.429 JST [13334] FATAL: pg_hba.conf の読み込みができませんでした
2023-08-11 10:35:22.430 JST [13334] LOG: データベースシステムはシャットダウンしました
pg_ctl: サーバーを起動できませんでした。
ログ出力を確認してください。
2023-08-11 10:35:22.429 JST [13334] LOG: 設定ファイル"/etc/postgresql/15/main/pg_hba.conf"をオープンできませんでした: Permission denied
とあるので、pg_hba.confのパーミッションがエラーの原因のようです。
user@pos:~$ ls -l /etc/postgresql/15/main
total 100
drwxr-xr-x 2 root root 4096 8月 11 10:15 conf.d
-rw-r--r-- 1 root root 315 8月 11 10:15 environment
-rw-r--r-- 1 root root 143 8月 11 10:15 pg_ctl.conf
-rw-r----- 1 root root 5002 8月 11 10:15 pg_hba.conf
-rw-r----- 1 root root 5002 8月 11 10:23 pg_hba.conf.org
-rw-r----- 1 root root 1636 8月 11 10:15 pg_ident.conf
-rw-r--r-- 1 root root 29716 8月 11 10:15 postgresql.conf
-rw-r--r-- 1 root root 29716 8月 11 10:22 postgresql.conf.org
-rw-r--r-- 1 root root 317 8月 11 10:15 start.conf
pg_hba.confが入っているディレクトリ内の他のファイル共々、パーミッションをroot:rootからpostgres:postgresへ変更します。
user@pos:~$ sudo chown -R postgres:postgres /etc/postgresql/15/main
user@pos:~$ ls -l /etc/postgresql/15/main
total 100
drwxr-xr-x 2 postgres postgres 4096 8月 11 10:15 conf.d
-rw-r--r-- 1 postgres postgres 315 8月 11 10:15 environment
-rw-r--r-- 1 postgres postgres 143 8月 11 10:15 pg_ctl.conf
-rw-r----- 1 postgres postgres 5002 8月 11 10:15 pg_hba.conf
-rw-r----- 1 postgres postgres 5002 8月 11 10:23 pg_hba.conf.org
-rw-r----- 1 postgres postgres 1636 8月 11 10:15 pg_ident.conf
-rw-r--r-- 1 postgres postgres 29716 8月 11 10:15 postgresql.conf
-rw-r--r-- 1 postgres postgres 29716 8月 11 10:22 postgresql.conf.org
-rw-r--r-- 1 postgres postgres 317 8月 11 10:15 start.conf
postageSLQを再起動後、psqlを実行してみます。
user@pos:~$ sudo systemctl restart postgresql
user@pos:~$ su - postgres
Password:
postgres@pos:~$ psql
psql (15.3 (Ubuntu 15.3-1.pgdg22.04+1))
"help"でヘルプを表示します。
postgres=#
無事、psqlを実行できました。