1

Я пытаюсь заставить Postgres 9.2.4 работать как сервис на Windows 7. После установки postgres сервис работал нормально. Однако после настройки postgres в качестве сервера для другой программы служба перестала работать. Когда я пытаюсь запустить службу сейчас, я получаю сообщение:

«Служба postgresql-x64-9.2 - PostgreSQL Server 9.2 на локальном компьютере запускается, а затем останавливается. Некоторые службы автоматически останавливаются, если они не используются другими службами или программами. "

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

"Возникла проблема при попытке войти или создать производственную базу данных. Детали: не удалось подключиться к серверу; Не удалось подключиться к удаленной розетке. Приложение теперь должно закрыться

Я также столкнулся с этой ошибкой один раз при открытии той же программы:

"Возникла проблема при попытке войти или создать производственную базу данных. Подробности: FATAL: не удалось загрузить pg_hba.conf Приложение должно закрыться. "

Я попытался запустить службу, вошедшую в систему как локальная системная учетная запись, а также как моя собственная учетная запись (в свойствах службы postgres), но безрезультатно. Я также попытался перезагрузить компьютер. После долгих поисков неисправностей в Интернете я узнал, что хорошо проверить файл pg_log. Вот содержимое последней записи pg_log:

2013-05-29 14:59:45 MDT LOG:  database system was interrupted; last known up at 2013-05-29 14:58:01 MDT
2013-05-29 14:59:45 MDT LOG:  database system was not properly shut down; automatic recovery in progress
2013-05-29 14:59:45 MDT LOG:  record with zero length at 0/175BB98
2013-05-29 14:59:45 MDT LOG:  redo is not required
2013-05-29 14:59:45 MDT LOG:  database system is ready to accept connections
2013-05-29 14:59:45 MDT LOG:  autovacuum launcher started
2013-05-29 15:07:00 MDT LOG:  local connections are not supported by this build
2013-05-29 15:07:00 MDT CONTEXT:  line 1 of configuration file "C:/PostgreSQL/data/pg_hba.conf"
2013-05-29 15:07:00 MDT FATAL:  could not load pg_hba.conf
2013-05-29 15:07:00 MDT LOG:  local connections are not supported by this build
2013-05-29 15:07:00 MDT CONTEXT:  line 1 of configuration file "C:/PostgreSQL/data/pg_hba.conf"
2013-05-29 15:07:00 MDT FATAL:  could not load pg_hba.conf
2013-05-29 15:09:03 MDT LOG:  received fast shutdown request
2013-05-29 15:09:03 MDT LOG:  aborting any active transactions
2013-05-29 15:09:03 MDT LOG:  autovacuum launcher shutting down
2013-05-29 15:09:03 MDT LOG:  shutting down
2013-05-29 15:09:03 MDT LOG:  database system is shut down

Кажется, возникают проблемы с файлом pg_hba.conf, который выглядит следующим образом:

local all all trust
host all all 127.0.0.1 255.255.255.255 trust
host all all 0.0.0.0 0.0.0.0 trust

Согласно многим предложениям в Интернете, я попытался отредактировать верхнюю строку для ряда различных альтернатив (разместить все все доверие / разместить все 127.0.0.1/32 доверие / разместить все 192.168.0.100/24 доверия и т.д.). Это имело смысл для меня, поскольку в файле журнала говорилось, что локальные соединения не поддерживаются postgres, и он также указывал на эту строку. Однако ни одно из моих изменений не оказало никакого влияния. Я пытался перезагрузить компьютер после каждого изменения, но ничего не изменилось.

Когда я искал примеры того, как обычно выглядит файл pg_hba.conf, эти примеры немного отличались от моего файла. Я заметил, что в программном файле PostgreSQL, помимо pg_hba.conf, был также файл «20130529-150444-old-pg_hba.conf», который во многом напоминал примеры, которые я находил в Интернете. Этот файл имеет несколько строк комментариев перед этими последними строками:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

Я надеялся, что это был оригинальный файл pg_hba.conf и что если я заменил новый файл содержимым старого, postgres снова заработал бы. Нет такой удачи. Я надеялся, что в pg_log будет зарегистрировано больше файлов ошибок, чтобы увидеть, исчезла ли ранее заявленная ошибка или изменилась на что-то другое, но больше файлов не было зарегистрировано.

Уже несколько дней я занимаюсь поиском и устранением неисправностей в сети, но ничего, что я нашел, не помогло. Извините за такой длинный вопрос, но я хотел быть внимательным и включить всю необходимую информацию. Буду признателен, если кто-нибудь сможет пролить свет на эту проблему или предложить предложения.

1 ответ1

0
  1. Вы запускали initdb раньше?

    Если у вас нет, это вызовет проблему. Запустив команду initdb , вы увидите каталог data , который должен содержать default pg_hba.conf .

  2. Затем вам нужно заменить файл default pg_hba.conf по customized pg_hba.conf на ваш настроенный файл pg_hba.conf .

  3. Вам нужно установить $ PGDATA. В CentOS он находится по адресу /etc/sysconfig/pgsql/postgresql .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .