Приспичило мне сегодня поставить PostgreSQL 8.3 (погода была дождливая и мне нечем было заняться, а "поковырять" эту СУБД давно хотелось). Быстренько выкачав последний инсталлятор и установив сервер и утилиты - с разбегу напоролся на первую проблему. Служба (эта СУБД установилась именно службой) упорно не хотела запускаться, вопя что нет доступа к файлу C:\Program Files\PostgreSQL\8.3\data\postmaster.conf Год назад я уже сталкивался с подобной проблемой, правда тогда ситуация осложнялась тем, что запускать СУБД надо было под виндой с АПКЗИ "Ребус"
1. Поскольку PostgreSQL упорно не желает запускаться из-под всяких левых учеток, а только из-под своей postgre, специально созданной в обход "Ребуса", который об этой учетке ничего не знал. В общем всё в тот раз было очень грустно. В этот же раз я твердо решил победить.
Полазив по форумам установил, что создаваемая автоматом учетка postgre не имеет доступа к папке, куда установлен POstgreSQL. Проблема была решена командой (вроде бы стандартной) cacls. Сделано это было следующим образом (вбивать команды надо в cmd.exe):
с:
cacls * /C /E /P postgres:F
cd "Program Files"
cacls * /C /E /P postgres:F
cd "PostgreSQL"
cacls * /C /E /P postgres:F
cd "8.3"
cacls * /C /E /P postgres:F
cd "data"
cacls * /C /E /P postgres:F
После этого в форме просмотра событий перестали отображаться какие-либо ошибки, но служба по прежнему упорно не желала запускаться. Полазив в директории pg_log обнаружил очередную порцию ошибок. Оказалось что теперь служба не может получить доступ к файлам директорий pg_xlog, pg_сlog, pg_subtrans и всему что внутри папки data. Обработав все до чего руки дотянулись командой cacls, службу удалось запустить.
Ещё статей на эту тему
Скачать PostgreSQL 8.3
1 "Ребус" это такая отечественная софтверная приблуда, подменяющая нормальную виндовскую аутентификацию своей корявой.