PostgreSQL — надёжная СУБД для веб-приложений и смешанных нагрузок. Здесь: установка на Ubuntu/Debian, создание БД и первые шаги по безопасности.
Требования
- Ubuntu 20.04+ или Debian 11+ с
sudo - Минимум 1 ГБ RAM (2 ГБ+ при серьёзной нагрузке)
Установка
1. Обновление и пакет сервера
Bashsudo apt update && sudo apt upgrade -y sudo apt install -y postgresql postgresql-contrib
2. Сервис
Bashsudo systemctl status postgresql sudo systemctl enable postgresql
По умолчанию PostgreSQL слушает локально (127.0.0.1) — нормально, если приложение на том же VPS.
База и пользователь приложения
Под пользователем postgres откройте psql:
Bashsudo -u postgres psql
В psql (замените имена и пароль):
SQLCREATE USER monapp WITH PASSWORD 'mot_de_passe_solide'; CREATE DATABASE monapp_db OWNER monapp; GRANT ALL PRIVILEGES ON DATABASE monapp_db TO monapp; \q
Проверка:
Bashpsql -h 127.0.0.1 -U monapp -d monapp_db
Типичная строка подключения
TEXTpostgresql://monapp:[email protected]:5432/monapp_db
Безопасность
- Сильный пароль у пользователя приложения.
- Не открывайте PostgreSQL в интернет без крайней необходимости. Если нужно: строгий фаервол,
listen_addresses,pg_hba.conf, лучше туннель или VPN. - С публичными сервисами совмещайте UFW и Fail2ban.
Удалённый доступ (избегайте без нужды)
В postgresql.conf (путь вида /etc/postgresql/*/main/):
Configlisten_addresses = '*'
В pg_hba.conf — узкая строка (пример: только фиксированный IP другого сервера):
TEXThost monapp_db monapp 203.0.113.50/32 scram-sha-256
Затем:
Bashsudo systemctl restart postgresql
Резервные копии
Логический дамп:
Bashsudo -u postgres pg_dump monapp_db > backup_monapp.sql
Восстановление:
Bashsudo -u postgres psql monapp_db < backup_monapp.sql
Планируйте копии (cron) на внешнее хранилище.
Устранение неполадок
- Peer authentication failed — используйте
-h 127.0.0.1для TCP или настройтеpg_hba.conf. - Connection refused — сервис активен и верный порт (по умолчанию
5432).