Во-первых, я новичок в 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.