psql: エラー: ソケット”/var/run/postgresql/.s.PGSQL.5432″のサーバーへの接続に失敗しました: No such file or directory サーバーはローカルで稼働していてそのソケットで接続を受け付けていますか? の対処

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を実行できました。

参考URL https://obel.hatenablog.jp/entry/20181027/1540588239

タイトルとURLをコピーしました