не удалось создать Unix -домен сокет в каталоге "/ var / run / postgresql" - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь раскомментировать 'unix_socket_directories =' / var / run / postgresql 'в postgresql .conf.

Но после этого, когда я пытаюсь перезапустить postgresql, я получаю

  Job for postgresql.service failed because the control process exited with error code. See 
  "systemctl status postgresql.service" and "journalctl -xe" for details.

В поисках journalctl я вижу:

LOG:  could not bind Unix socket: Address already in use
HINT:  Is another postmaster already running on port 5432? If not, remove socket file 
"/var/run/postgresql/.s.PGSQL...and retry.
: WARNING:  could not create Unix-domain socket in directory "/var/run/postgresql"

Полный стек:

 Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; 
 vendor preset: disabled)
  Active: failed (Result: exit-code) since Ср 2020-01-29 13:39:52 MSK; 
 27s ago
  Process: 2937 ExecStop=/usr/bin/pg_ctl stop -D ${PGDATA} -s -m fast 
 (code=exited, status=1/FAILURE)
  Process: 2550 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p 
 ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS)
  Process: 2544 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} 
 (code=exited, status=0/SUCCESS)
 Main PID: 2554 (code=killed, signal=KILL)

   plesk.iline.pro systemd[1]: Starting PostgreSQL database server...
   plesk.iline.pro pg_ctl[2550]: LOG:  could not bind Unix socket: 
   Address already in use
   plesk.iline.pro pg_ctl[2550]: HINT:  Is another postmaster already 
   running on port 5432? If not, remove socket file 
   "/var/run/postgresql/.s.PGSQL...and retry.
    plesk.iline.pro pg_ctl[2550]: WARNING:  could not create Unix- 
    domain socket in directory "/var/run/postgresql"
    plesk.iline.pro systemd[1]: Started PostgreSQL database server.
    2 plesk.iline.pro systemd[1]: postgresql.service: main process 
    exited, code=killed, status=9/KILL
    plesk.iline.pro pg_ctl[2937]: pg_ctl: could not send stop signal 
    (PID: 2554): No such process
    plesk.iline.pro systemd[1]: postgresql.service: control process 
    exited, code=exited status=1
    plesk.iline.pro systemd[1]: Unit postgresql.service entered failed 
    state.
    plesk.iline.pro systemd[1]: postgresql.service failed.
    Hint: Some lines were ellipsized, use -l to show in full.

1 Ответ

1 голос
/ 29 января 2020

Скорее всего, на том же порту работает еще один PostgreSQL сервер.

Вы должны сделать то, что рекомендует PostgreSQL:

ls -l /var/run/postgresql/.s.PGSQL.5432

Должен присутствовать файл сокета.

Затем, как пользователь root, посмотрите, есть ли процесс PostgreSQL, прослушивающий порт:

sudo fuser /var/run/postgresql/.s.PGSQL.5432

Если есть результат, на самом деле есть еще один PostgreSQL сервер работает на порту 5432. Либо остановите этот сервер, либо выберите другой порт для вашего кластера.

Если результата нет, сокет может остаться. Удалите его и попробуйте снова.

...