powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проблема настройки встроенных клиентов PostgreSQL: несуществующий run/postgresql/.s.PGSQL*
7 сообщений из 7, страница 1 из 1
Проблема настройки встроенных клиентов PostgreSQL: несуществующий run/postgresql/.s.PGSQL*
    #39909505
St.Sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Самостоятельно не могу найти решение, прошу помощи.

Проблема

В исходном состоянии postgres при попытке запустить сервер отвечает:
Код: powershell
1.
2.
pg_ctl: could not start server
Examine the log output.


Соответственно - лог:
Код: powershell
1.
2.
3.
4.
5.
LOG:  starting PostgreSQL 12.1 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 9.2.0, 64-bit
LOG:  listening on IPv6 address "::1", port 5432
LOG:  listening on IPv4 address "127.0.0.1", port 5432
FATAL:  could not create lock file "/run/postgresql/.s.PGSQL.5432.lock": No such file or directory
LOG:  database system is shut down



Первое частичное решение

Так как директория postgresql в /run вообще отсутствовала, то я создал её вручную:
Код: powershell
1.
2.
sudo mkdir /run/postgresql
sudo chown postgres /run/postgresql


После чего сервер стартовал: я мог пользоваться psql, createdb, dropdb и т.д. Но директория '/run' после перезагрузки пересоздаётся, а директория 'postgresql/' в ней - нет. Несмотря на достижение работоспособности востребованных элементов, этот процесс выглядит непрозрачным. Конфигурационные файлы для смены директории '/run', например, на /tmp мною так и не были найдены (про 'postgresql.conf - ниже). Также, я не уверен, что ручное создание этой директории каждую сессию - корректный подход, не приводящий к нежелательным последствиям.


Второе частичное решение

Директория для database cluster была мной пересоздана и снова проинициализирована, но теперь я добавил в неё файл с записью: postgresql.confunix_socket_directories = '/tmp'Это позволило запустить сервер без создания дополнительных директорий, однако, все остальные приложения всё также обращаются к несуществующей (если вручную не создать) директории '/run/postgresql'. Пример:
Код: powershell
1.
2.
3.
4.
5.
[postgres@SPC ~]$ psql
psql: error: could not connect to server: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/run/postgresql/.s.PGSQL.5432"?
[postgres@SPC ~]$ 



Неработоспособные решения
  • Я подумал, раз все приложения направляются в одну директорию, то где-то есть конфигурационный файл/файлы этих приложений - не были найдены .
  • Если не конфигурационных файлов, значит можно проверить глобальные переменные. Может оно так и есть, но printenv нигде не указывает на переменные для postgresql и ко., также как нет записей с директорией /run. printevn применял для всех имеющихся пользователей. На всякий случай проверил все конфигурационные файлы bash (.bashrc, bash.bashrc, идущие с дистрибутивом файлы bash) - тоже ничего. У меня есть предположение, что проблема действительно решаема через глобальные переменные, но я не нашёл как это сделать. Добавление записи в .bashrc для рута, пользователя и пользователя 'postgres' не повлияло на результат. Может так делать неправильно? Bash после внесения изменеий перезагружал.
.bashrc$
  • PGHOST='/tmp/postgresql/.s.PGSQL.5432'
  • PGHOST='/tmp/postgresql/.s.PGSQL.5432'
    • Даже в документации "Проблемы соединения клиента" (самый нижний пример) postgresql.org/docs/8.0/postmaster-start.html проблемы с директорией /tmp, а не с /run, как у меня. Почему-то самая последняя версия в этом разделе - 8.0 ...

    postgres (PostgreSQL) 12.1 (установлена стандартным средством pamac)
    OS: ManjaroLinux 18.1.4 x86_64
    Kernel: Linux 5.4.2-1-MANJARO
    Shell: /bin/bash 5.0.11

    Может кто-то имел дело с этим продуктом на Arch, или на таком же дистрибутиве, как у меня. Или вы сможете указать мне на какое-то упущение с моей стороны. Спасибо.
    ...
    Рейтинг: 0 / 0
    Проблема настройки встроенных клиентов PostgreSQL: несуществующий run/postgresql/.s.PGSQL*
        #39909507
    Guzya
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Гость
    Запускаете postgres службой или командой?
    Если командой, sudo используете?
    ...
    Рейтинг: 0 / 0
    Проблема настройки встроенных клиентов PostgreSQL: несуществующий run/postgresql/.s.PGSQL*
        #39909508
    Guzya
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Гость
    Вы пишите про проблему с клиентами, но у Вас сервер не стартует.
    ...
    Рейтинг: 0 / 0
    Проблема настройки встроенных клиентов PostgreSQL: несуществующий run/postgresql/.s.PGSQL*
        #39909509
    Melkij
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    St.Sergey
    Я подумал, раз все приложения направляются в одну директорию, то где-то есть конфигурационный файл/файлы этих приложений - не были найдены .

    build-time константа DEFAULT_PGSOCKET_DIR. Замечу, что в дереве исходного кода postgresql дефолт как раз /tmp

    St.Sergey
    У меня есть предположение, что проблема действительно решаема через глобальные переменные

    Вам нужна переменная окружения PGHOST='/tmp'
    Как её определить постоянно - см. в документации к вашей системе

    St.Sergey
    Но директория '/run' после перезагрузки пересоздаётся, а директория 'postgresql/' в ней - нет

    St.Sergey
    postgres (PostgreSQL) 12.1 (установлена стандартным средством pamac)

    Ошибка сопровождающего. Напишите баг-репорт сопровождающему (_не_ багрепорт в pgsql-bugs).
    ...
    Рейтинг: 0 / 0
    Проблема настройки встроенных клиентов PostgreSQL: несуществующий run/postgresql/.s.PGSQL*
        #39909510
    St.Sergey
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Гость
    Всё выключил, пошёл спать и нашёл решение. Решил узнать как вообще настраивается автозагрузка, но в Arch-подобных системах нет /etc/init.d, вместо этого используется systemd или systemctl. Две команды решили проблему (после пересоздания datadabe cluster):
    systemctl start postgresql - коректно запускает сервер
    systemctl enable postgresql - добавляет PostgreSQL в автозагрузки

    Проверить статус сервера:
    systemctl status postgresql.service
    ...
    Рейтинг: 0 / 0
    Проблема настройки встроенных клиентов PostgreSQL: несуществующий run/postgresql/.s.PGSQL*
        #39909512
    St.Sergey
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Гость
    Melkij
    Ошибка сопровождающего. Напишите баг-репорт сопровождающему (_не_ багрепорт в pgsql-bugs).


    Да, вы правы, сделаю.
    ...
    Рейтинг: 0 / 0
    Проблема настройки встроенных клиентов PostgreSQL: несуществующий run/postgresql/.s.PGSQL*
        #39909515
    St.Sergey
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Гость
    Guzya
    Запускаете postgres службой или командой?
    Если командой, sudo используете?


    Я менял пользователя на postgres через 'su - postgres' и уже под пользователем [postgres@~] 'pg_ctl -D /var/lib/postgres/data -l log start'

    Но, как оказалось, под Arch работает 'systemctl start postgresql'
    ...
    Рейтинг: 0 / 0
    7 сообщений из 7, страница 1 из 1
    Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проблема настройки встроенных клиентов PostgreSQL: несуществующий run/postgresql/.s.PGSQL*
    Целевая тема:
    Создать новую тему:
    Автор:
    Закрыть
    Цитировать
    Найденые пользователи ...
    Разблокировать пользователей ...
    Читали форум (0):
    Пользователи онлайн (0):
    x
    x
    Закрыть


    Просмотр
    0 / 0
    Close
    Debug Console [Select Text]