Приветствую, камрады.
Я долгое время не хотел переходить со знакомой и привычной Хрюши, но пришлось. И вот столкнулся, что на Vista и W7 никак не хочет штатными методами вставать PostgreSQL 8.3.3, хотя на WinXP все прекрасно инсталлируется простым запуском setup и выбором необходимых параметров.
Убив немного времени и трафика, а также почитав документацию, я нашел 1 способ как все таки поставить PostgreSQL. Я не берусь утверждать, что этот способ самый лучший, более чем уверен что есть и другие способы и к сожалению я так и не смог установить PostgreSQL без дополнительных манипуляций.
Коротко о сути способа:
Поставить PostgreSQL без автоматической инициализации кластера
Вручную инициализировать кластер
Создать сервис
Установка без автоматической инициализации кластера отличается от типовой установке только тем, что в окне с параметрами инициализации кластера, необходимо снять галочку «инициализировать кластер базы данных».
Для инициализации кластера в ручную, необходимо выполнить команду (командную строку лучше запускать из меню «Пуск» - «Все программы» - «PostgreSQL», иначе придется вводить полный путь до initdb):
initdb.exe -D с:\pg_base --locale=Russian_Russia --encoding=UTF8 -U postgres -W
c:\ pg_base – путь где будут лежать файлы кластера (БД, конф. файлы и еще кучка всякого)
--locale=Russian_Russia --encoding=UTF8 –задаем необходимую локаль и кодировку
-U postgres – имя супер пользователя БД
- W – вас попросят ввести пароль для супер пользователя
После окончания инициализации можно запускать PostgreSQL в ручную, но мне больше нравиться, когда он стартует автоматом, для этого необходимо выполнить команду:
sc create pgsql-8.3_cluster displayname= "PostrgeSQL_Cluster" obj= ".\postgres" password= "1234567" start= auto binPath= "C:\Progra~1\PostgreSQL\8.3.3-2.1C\bin\pg_ctl.exe runservice -w -N pgsql-8.3_cluster -D C:\pg_base\"
По человечески эта команда звучит, как «создать сервис с именем pgsql-8.3_cluster отображаемым именем PostrgeSQL_Cluster запускаемым от имени пользователя postgres с паролем "1234567", который будет автоматически запускаться и строка запуска у него = "C:\Progra~1\PostgreSQL\8.3.3-2.1C\bin\pg_ctl.exe runservice -w -N pgsql-8.3_cluster -D C:\pg_base\"»
Затем в командной строке:
net start pgsql-8.3_cluster
и если звезды и луна находятся в нужной позиции и винчестер вашего ПК ориентирован строго с севера на ЮГ, у Вас скрещены пальцы на руках и ногах то возможно вы увидите сообщение об успешном старте сервиса, во всех других случаях смотрим в событиях, на что ругается и соответственно исправляем.
Полезные команды:
initdb --help
pg_ctl --help
sc create
sc delete
Полезные сайты:
http://www.gilev.ru/1c/81/postgresql/index.htm
Тут можно получить слона:
http://users.v8.1c.ru/Platform_8_3_3_21C_pwn_s.aspx
Уверен, что есть более правильные способы обхода проблемы, я надеюсь, что в обсуждении статьи кто-нибудь их расскажет или даст ссылку.
С уважением,
Ruler.