Установка и настройка PostgreSQL на Windows Server 2019
Подробное руководство по установке, настройке и оптимизации PostgreSQL для Windows Server 2019
Введение
PostgreSQL - мощная объектно-реляционная СУБД с открытым исходным кодом. Это руководство поможет:
- Установить PostgreSQL 16 на Windows Server 2019
- Настроить безопасность и производительность
- Решить типичные проблемы при развертывании
Требования
Минимальные требования:
- Windows Server 2019 (x64)
- 2 ГБ ОЗУ (рекомендуется 4+ ГБ)
- 1 ГБ свободного места на диске
- .NET Framework 4.7+
- Учетная запись с правами администратора
Установка
Подготовка
- Скачайте установщик с официального сайта
- Проверьте целостность файла:
1Get-FileHash -Algorithm SHA256 postgresql-16.0-1-windows-x64.exe
- Отключите брандмауэр временно для установки
Процесс установки
- Запустите установщик от имени администратора
- Выберите компоненты:
PostgreSQL Server
pgAdmin 4
Command Line Tools
- Укажите пароль для суперпользователя postgres
- Задайте порт 5432 (или другой свободный)
- Выберите локаль English, United States
- Завершите установку и запустите Stack Builder для дополнительных компонентов
Настройка
Основные параметры postgresql.conf:
1listen_addresses = '*' 2max_connections = 100 3shared_buffers = 512MB 4work_mem = 16MB
Настройка доступа (pg_hba.conf):
# TYPE DATABASE USER ADDRESS METHOD
host all all 10.0.0.0/8 scram-sha-256
Создание пользователя:
1CREATE USER app_user WITH PASSWORD 'StrongPass123!'; 2CREATE DATABASE app_db OWNER app_user; 3 4## Типичные ошибки и их решения 5 6**Ошибка: 'Порт 5432 занят'** 7```powershell 8netstat -ano | findstr :5432 9taskkill /PID <PID> /F
Ошибка аутентификации Проверьте pg_hba.conf и перезагрузите службу:
Restart-Service postgresql-x64-16
Нет доступа к данным Выдайте права пользователю:
1GRANT ALL PRIVILEGES ON DATABASE app_db TO app_user; 2 3## Заключение 4 5Вы успешно установили PostgreSQL на Windows Server 2019. Для дальнейшей оптимизации: 6- Настройте регулярное резервное копирование 7- Включите мониторинг через pgAdmin 8- Обновляйте СУБД до актуальных версий 9 10## Команды 11 12### Проверка работы службы 13 14```bash 15Get-Service postgresql-x64-16
Запуск psql от имени postgres
psql -U postgres -d postgres
Добавление правила брандмауэра
1New-NetFirewallRule -DisplayName "PostgreSQL 5432" -Direction Inbound -Protocol TCP -LocalPort 5432 -Action Allow
Решение проблем
Служба не запускается
Проверьте логи в %PROGRAMFILES%\PostgreSQL\16\data\log\
1Get-Content -Path "C:\Program Files\PostgreSQL\16\data\log\postgresql-*.log" -Tail 50
Ошибка подключения из сети
Проверьте listen_addresses в postgresql.conf и правила брандмауэра
1netsh advfirewall firewall show rule name="PostgreSQL 5432"