PostgreSQL: FATAL: Peer authentication failed for user «name»

Автор: | 09/11/2019
 

Небольшая заметка «для себя» по настройке удалённого доступа и дампам в PostgreSQL.

Переехал к нам ЕС2 с другого аккаунта с одним из сайтов.

При попытке подключиться к PostgreSQL, который работает на этой машинке — получаем ошибку «FATAL: Peer authentication failed for user «name»«.

Причём и при подключении локально — и удалённо.

PostgreSQL remote login enable

Обычно она возникает, если для подключений не задан метод md5 в настройках сервера.

Влючаем remote login — редактируем конфиг /etc/postgresql/11/main/pg_hba.conf, задаём в виде:

тип имя-базы имя-пользователя адрес - тип-аутентификации

В нашем случае это будет запись вида:

...
host  dbname username 188.***.***.94/32 md5
...

Где 188.***.***.94 — мой домашний IP.

Применение настроек без перезагрузки PostgreSQL сервера

Сервер новый, только к нам перехал, делалось в пятницу вечером — перезагружать его не хочется.

Что бы применить настройки без перезагрузки — переключаемся под пользователя postgres:

root@ip-172-31-9-189:~# su - postgres
postgres@ip-172-31-9-189:~$

И выполняем pg_ctl reload:

postgres@ip-172-31-9-189:~$ /usr/lib/postgresql/11/bin/pg_ctl reload -D /var/lib/postgresql/11/main
server signaled

Проверяем процессы:

postgres@ip-172-31-9-189:~$ ps aux | grep post
postgres 10524  0.0  1.1 320924 24304 ?        S    Jul18   2:00 /usr/lib/postgresql/11/bin/postgres -D /var/lib/postgresql/11/main -c config_file=/etc/postgresql/11/main/postgresql.conf
postgres 10526  0.0  1.4 321108 28588 ?        Ss   Jul18   0:02 postgres: 11/main: checkpointer
postgres 10527  0.0  0.5 320980 10936 ?        Ss   Jul18   0:36 postgres: 11/main: background writer
postgres 10528  0.0  0.4 320956  9496 ?        Ss   Jul18   0:43 postgres: 11/main: walwriter
postgres 10529  0.0  0.3 321416  7620 ?        Ss   Jul18   0:50 postgres: 11/main: autovacuum launcher
postgres 10530  0.0  0.2 176332  5820 ?        Ss   Jul18   1:10 postgres: 11/main: stats collector
postgres 10531  0.0  0.3 321264  6632 ?        Ss   Jul18   0:01 postgres: 11/main: logical replication launcher

Подключаемся с домашней машины:

[setevoy@setevoy-arch-pc ~] $ psql -h 18.***.***.27 -p 6666 -U username dbname
Password for user username:
...
dbname=>

Всё хорошо.

Дамп базы данных в PostgreSQL

И выполняем дамп:

[setevoy@setevoy-arch-pc ~] $ pg_dump -h 18.***.***.27 -p 6666 -U username dbname > dbname.pgsql
Password:

Проверяем содержимое:

[setevoy@setevoy-arch-pc ~] $ head dbname.pgsql
--
-- PostgreSQL database dump
--
-- Dumped from database version 11.3 (Ubuntu 11.3-1.pgdg18.04+1)
-- Dumped by pg_dump version 11.5
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
...

Готово.