PSQL не может подключиться без флага -h - PullRequest
0 голосов
/ 22 мая 2019

Я запускаю psql с терминала Debian 8.7, но не могу понять, для чего ему нужен флаг -h.Например, если я запускаю psql -U postgres на терминале, я получаю следующую ошибку:

psql: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Однако, когда я добавляю флаг хоста, я могу подключиться:

psql -U postgres -h localhost

psql (9.4.10, server 9.6.2)
WARNING: psql major version 9.4, server major version 9.6.
         Some psql features might not work.
Type "help" for help.

postgres=#

В чем причина?

1 Ответ

2 голосов
/ 22 мая 2019

Похоже, что клиент и сервер имеют разные представления о каталоге, в котором должны быть созданы сокеты UNIX.

При подключении к базе данных запустите

SHOW unix_socket_directories;

Это скажетВы, в каком каталоге (или каталогах) находится сокет UNIX.

Вы можете использовать имя каталога с параметром -h или установить для него переменную среды PGHOST для локального подключения.

Например, если вы получите результат /tmp (заводская настройка по умолчанию), вы можете использовать

psql -h /tmp -U postgres
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...