ViPNet StateWacher > установка PostgreSQL на Win2016 Server
На Windows 2016 Server PostgresSQL официально не поддерживается, точнее не работает установщик. Установка проходит с ошибками, база не создается, всё нужно делать руками.
Переходим в нужную папку:
сd /Program Files/PostgresSQL/9.1/bin/
Создаем пустую папку уровнем выше:
md ../data
Назначаем ей самые полные права для всех. Просто пользователю postgres прав было мало, добавил группу "пользователи".
Инициализируем базу:
pg_ctl.exe init -s -D ../data
Если не будет хватать прав утилита напишет об этом.
Создаем службу для postgres, я сделал такую же как в мануале:
pg_ctl.exe register -N postgrescql-x64-9.1 -U postgres -P windows_password -D "../data"
Из оснастки Службы запускаем созданную службу postgrescql-x64-9.1. Если ругается, значит что-то пропустили или не в том порядке сделали. Удалить службу можно так:
pg_ctl.exe unregister -N postgrescql-x64-9.1
Заходим в консоль SQL сервера:
psql.exe template1
Добавляем роль (не забываем про точку с запятой):
CREATE ROLE postgres superuser;
Если вдруг нет пользователя (у меня был), добавляем:
CREATE USER postgres;
Если нет прав у пользователя (у меня были), делаем:
GRANT ROOT TO postgres;
Разрешаем логиниться:
ALTER ROLE postgres WITH LOGIN;
Выходим из template1 - Ctrl+C.
Заходим под postgres:
psql.exe -U postgress
Меняем пароль:
\password
По умолчанию у базы template1 кодировка win cp1251, statewacher требует utf8. Переделываем:
UPDATE pg_database SET datistemplate=FALSE WHERE datname='template1';
DROP DATABASE template1;
CREATE DATABASE template1 WITH owner=postgres template=template0 encoding='UTF8';
UPDATE pg_database SET datistemplate=TRUE WHERE datname='template1';
Всё можно устанавливать StateWhacher.









