hello foo bar Saba note | PostgreSQLのよく出るエラー

PostgreSQLのよく出るエラー

2019.10.24 (木)

再起動時のエラー

systemctl restart postgresql-11実行時に出るエラー。通常rootで再起動したらできる。Root以外で(postgresユーザー)で再起動する場合はrootのパスワードが要求されます。rootにパスワードが設定されていない場合は、このユーザー権限での再起動はできません。

Failed to restart postgresql-11.service: Access denied
See system logs and 'systemctl status postgresql-11.service' for details.

pg_ctlで別のディレクトリ(別のバージョン)を指していたりすることがあります。

pg_ctl reload
pg_ctl: directory "/var/lib/pgsql/12/data" does not exist

ログイン時のエラー

$ psql -U USER_NAME
psql: FATAL:  Peer authentication failed for user "USER_NAME"

権限関連の設定がちゃんとなされていない感じです。pg_hba.confの設定などを見直す必要があります。

PHPからの接続エラー

PDOException: SQLSTATE[08006] [7] FATAL:  no pg_hba.conf entry for host "::1", user "voyager", database "voyager", SSL off in /root/psql.php:12
Stack trace:
#0 /root/psql.php(12): PDO->__construct('pgsql:host=loca...')
#1 {main}

pg_hba.confでIPv6を有効にしてあげればOKです。逆にIPv6を使いたくない場合にはIPv4を直接127.0.0.1のようにホストを指定してみてください。