Psql не удалось подключиться к серверу: нет такого файла или каталога, ошибка 5432?
Я пытаюсь запустить psql
на моей машине-бродяге, но я получаю эту ошибку:
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"?
Примечание: Vagrant 1.9.2 Box: ubuntu/trusty64, https://atlas.hashicorp.com/ubuntu/boxes/trusty64
Команды EDIT, которые я использовал для установки и запуска postgres:
-
sudo apt-get update
-
sudo apt-get install postgresql
-
sudo su postgres
-
psql -d postgres -U postgres
Ответы
Ответ 1
У меня была такая же проблема, связанная с настройкой моего файла pg_hba.conf (находится в /etc/postgresql/9.6/main
). Обратите внимание, что 9.6 - это версия postgresql, которую я использую.
Сама ошибка связана с неправильной настройкой postgresql, которая вызывает сбой сервера перед его запуском.
Я хотел бы предложить следующие инструкции:
- Убедитесь, что служба postgresql запущена, используя
sudo service postgresql start
- Запустите
pg_lsclusters
из вашего терминала -
Проверьте, какой кластер вы используете, вывод должен быть примерно таким:
Версия - каталог данных владельца статуса порта кластера
9.6 ------- main - 5432 онлайн постгрес /var/lib/postgresql/9.6/main
Не обращайте внимания на знаки "---", так как они используются там только для выравнивания. Важной информацией являются версия и кластер. Вы также можете проверить, работает ли сервер в столбце состояния.
- Скопируйте информацию из версии и кластера и используйте так:
pg_ctlcluster <version> <cluster> start
, так что в моем случае, используя версию 9.6 и кластер 'main', это будет pg_ctlcluster 9.6 main start
- Если что-то не так, то postgresql сгенерирует журнал, к которому можно обратиться по
/var/log/postgresql/postgresql-<version>-main.log
, поэтому в моем случае полной командой будет sudo nano/var/log/postgresql/postgresql-9.6-main.log
. - Выходные данные должны показать, что является ошибкой.
2017-07-13 16:53:04 BRT [32176-1] LOG: неверный метод аутентификации "все"
2017-07-13 16:53:04 BRT [32176-2] КОНТЕКСТ: строка 90 файла конфигурации "/etc/postgresql/9.5/main/pg_hba.conf"
2017-07-13 16:53:04 BRT [32176-3] FATAL: не удалось загрузить pg_hba.conf
- Исправьте ошибки и перезапустите сервис postgresql через
sudo service postgresql restart
и все должно быть в порядке.
Я много искал, чтобы найти это, кредит идет на этот пост.
Удачи!
Ответ 2
У меня была такая же проблема, но не ответы здесь помогли.
Как я исправил его (mac)
- Попробуйте запустить postgresql с помощью
pg_ctl -D/usr/local/var/postgres start
- Найдите сообщение об ошибке, которое говорит что-то вроде
FATAL: could not open directory "pg_tblspc": No such file or directory
. - Создайте этот отсутствующий каталог
mkdir/usr/local/var/postgres/pg_tblspc
- Повторяйте с первого шага, пока не создадите все отсутствующие каталоги
- Когда это будет сделано, а затем снова попытается запустить postgresql, он может сказать, что
FATAL: lock file "postmaster.pid" already exists
- Удалить postmaster.pid:
rm/usr/local/var/postgres/postmaster.pid
- Начать postgres с помощью:
pg_ctl -D/usr/local/var/postgres start
- Сделано ✨
Ответ 3
Я просто публикую это для всех, кто чувствует себя потерянным и безнадежным, как я сделал, когда нашел этот вопрос. Кажется, что иногда, редактируя некоторые файлы конфигурации, связанные с psotgresql, можно случайно изменить права доступа к файлу:
Обратите внимание, что pg_hba.conf принадлежит root, и пользователи даже не могут его прочитать. Это приводит к тому, что postgres не может открыть этот файл и, следовательно, не может запустить сервер, что приводит к ошибке, замеченной в исходном вопросе.
Запустив
sudo chmod +r pg_hba.conf
Мне удалось сделать этот файл снова доступным для пользователя postgres, а затем после запуска
sudo service postgresql start
Был в состоянии снова запустить сервер.
Ответ 4
/etc/postgresql/9.6/main/postgresql.conf
ли /etc/postgresql/9.6/main/postgresql.conf
назначенный порт? На моей установке по умолчанию Xubuntu Linux мой показал порт = 5433 по какой-то причине так хорошо, как я помню, но я прокомментировал строку в том же файле, который сказал listen_addresses = 'localhost'
и раскомментировал строку listen_addresses = '*'
. Поэтому, возможно, начните и проверьте там. Надеюсь, это поможет.
Ответ 5
Используйте команду:
rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8
Ответ 6
Откройте диспетчер баз данных и выполните этот скрипт
update pg_database set datallowconn = 'true' where datname = 'your_database_name';
Ответ 7
То же самое случилось со мной, поскольку я что-то изменил в /etc/hosts
. После его изменения до 127.0.0.1 localhost
это сработало для меня.
Ответ 8
В пределах зш:
rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8
Это единственное, что сработало для меня после бесчисленных часов устранения неполадок.
Ответ 9
Это работает для меня:
pg_ctl -D /usr/local/var/[email protected] stop;
brew services stop [email protected];
brew services start [email protected];
Ответ 10
У меня была такая же ошибка, когда я создавал SQL db в виртуальной машине. Я изменил значение по умолчанию /etc/postgresql/9.3/main/postgresql.conf shared_buffers = 200MB
200MB до 75% от моей общей ОЗУ. Ну, я забыл на самом деле выделить эту RAM в виртуальной машине. Когда я дал команду создать новую базу данных, я получил ту же ошибку.
Сработал, дал ребенку свою бутылку (ОЗУ) и престо, это сработало.
Ответ 11
просто переустановите свой pgsql с помощью прямой версии sudo apt-get install postgresql-9.5 (u должен удалить пакет перед установкой нового)
Ответ 12
Я смог решить проблему, запустив:
sudo systemctl start [email protected]
Ответ 13
Я получил эту ошибку, когда восстановил свою базу данных из последнего файла резервной копии pg_basebackup. После этого, когда я пытался подключиться к базе данных (PSQL), я получал ту же ошибку. Ошибка была устранена, когда я обновил файл pg_hba.conf и там, где была "равноправная" аутентификация, я заменил ее на "md5", а затем перезапустил службы postgres. После этого проблема была решена.
Ответ 14
У меня были подобные проблемы недавно. Перепробовав более 5 предложений, я решил вернуться к основам и начать с самого начала. Это означало удаление моей установки postgresql и следование этому руководству после переустановки postgresql. https://help.ubuntu.com/lts/serverguide/postgresql.html