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