Назад | Перейти на главную страницу

Невозможно подключиться к Postgres на Vagrant Box - В соединении отказано?

Во-первых, я новичок в Vagrant и Postgres.

Я создал свой экземпляр Vagrant, используя http://files.vagrantup.com/lucid32.box без проблем. Я могу бежать vagrant up и vagrant ssh без проблем.

Я последовал за инструкции с одним незначительным изменением я установил пакет «postgresql-8.4-postgis» вместо «postgresql postgresql-contrib».

Я запустил сервер, используя:

postgres@lucid32:/home/vagrant$ /etc/init.d/postgresql-8.4 start

При подключении к бродячему экземпляру я могу использовать psql для подключения к экземпляру без проблем.

В моем Vagrantfile я уже добавил:

config.vm.forward_port 5432, 5432

но когда я пытаюсь запустить psql с локального хоста, я получаю:

psql: could not connect to server: Connection refused
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Я уверен, что упускаю что-то простое. Любые идеи?

Обновить:

Я нашел ссылку на подобную проблему, и в статье предлагается использовать:

psql -U postgres -h localhost

с этим я получаю:

psql: server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.

Инструкции из упомянутого вами сообщения в блоге совершенно не подходят для ubuntu: они используют фрагменты из установки самокомпилированного сервера, которые плохо сочетаются с упакованной версией.

Не следует создавать / usr / local / pgsql / data и запускать initdb в этот каталог, потому что пакет ubuntu использует /var/lib/postgresql/<pg-version-number>/<cluster-name> и бежит initdb от имени пользователя.

Ошибка с упоминанием «/tmp/.s.PGSQL.5432» показывает, что ожидаемое расположение этого файла неверно (для ubuntu). Это должно быть в /var/run/postgresql. Вероятно, это связано с запуском initdb вручную с параметрами, несовместимыми с ubuntu.

Файлы postgresql.conf и pg_hba.conf, которые нужно редактировать для включения нелокальных подключений, должны находиться внутри /etc/postgresql/8.4/main, а не / usr / local / pgsql / data.

В /etc/init.d/postgresql-8.4 должен запускаться пользователем root (как и все остальное в /etc/init.d), а не пользователем postgres.

PGDATA не следует устанавливать вручную, потому что, опять же, это действительно мешает работе пакетов ubuntu postgres.

Моим ответом было бы очистить и переустановить пакет postgresql-8.4 без выполнения каких-либо инструкций из сообщения в блоге. postgresql-8.4-postgis зависит от postgresql-8.4, поэтому он также будет удален. Также не забудьте отменить настройку PGDATA в /etc/bash.bashrc.

Вы можете найти моя поваренная книга полезно. Я только что выложил на github. Он настраивает Ubuntu 12.04 LTS с PostgreSQL 9.1.