PostgreSQL — посібник для початку роботи
PostgreSQL — потужна реляційна база даних з відкритим кодом, відома надійністю, цілісністю даних і розширеними можливостями, як-от підтримка JSON, повнотекстовий пошук і розширюваність. Сервер постачається з повністю налаштованим PostgreSQL 16 і паролем адміністратора, вказаним під час замовлення. Для керування базами через браузер встановлено pgAdmin4.
Крок 1 — перевірте, що PostgreSQL працює
IP-адресу сервера й пароль root показано на сторінці Server Details у клієнтській панелі. pgAdmin4 — вебінструмент для керування PostgreSQL. Відкрийте http://your.server.ip/pgadmin4 у браузері, щоб переконатися, що все працює.
Вхід у pgAdmin4:
- Email: email, вказаний під час замовлення
- Пароль: пароль адміністратора (Admin Password), який ви вказали під час замовлення
Суперкористувач PostgreSQL:
- Імʼя користувача:
postgres - Пароль: пароль адміністратора (Admin Password), який ви вказали під час замовлення
Увійдіть у pgAdmin4, потім додайте підключення до сервера PostgreSQL:
- Клацніть правою кнопкою на Servers у лівій панелі й оберіть Register > Server
- General (вкладка): введіть назву (наприклад, “Local”)
- Connection (вкладка): Host =
127.0.0.1, Port =5432, Username =postgres, Password = ваш Admin Password - Натисніть Save
Тепер можна переглядати бази даних, виконувати SQL-запити, імпортувати й експортувати дані та керувати користувачами через вебінтерфейс.
Серверам баз даних не потрібен публічний доступ з інтернету. Для безпечного доступу розмістіть сервер у приватній мережі за маршрутизатором VyOS і підключайтеся через VPN до PostgreSQL і pgAdmin4 за приватною IP сервера.
Крок 2 — віддалене підключення до PostgreSQL
PostgreSQL налаштовано на приймання віддалених підключень. Підключатися можна з будь-якого застосунку чи інструмента:
psql -h your.server.ip -U postgres
Параметри підключення для графічних інструментів (pgAdmin Desktop, DBeaver, DataGrip тощо):
| Параметр | Значення |
|---|---|
| Хост | your.server.ip |
| Порт | 5432 |
| Імʼя користувача | postgres |
| Пароль | Admin Password із замовлення |
Примітка: Порт 5432 — це протокол PostgreSQL, а не HTTP, тож відкрити його в браузері неможливо. Використовуйте клієнт баз даних або команду вище.
Крок 3 — увімкніть SSL для pgAdmin4 (необовʼязково)
Якщо на сервер спрямовано домен, можна увімкнути HTTPS для pgAdmin4 із безкоштовним сертифікатом Let’s Encrypt. Підключіться через SSH і виконайте:
ssh root@your.server.ip
/opt/setup/get-ssl.sh db.yourdomain.com
Скрипт перевірить DNS, отримає сертифікат і автоматично налаштує Apache для HTTPS. Після завершення pgAdmin4 буде доступний за адресою https://db.yourdomain.com/pgadmin4.
Примітка: Перед запуском скрипта переконайтеся, що A-запис домену вказує на IP сервера. SSL необовʼязковий — pgAdmin4 нормально працює через HTTP за IP-адресою.
Керування базами даних
Створення додаткових баз даних
Додаткові бази даних можна створити через pgAdmin4 або SSH:
sudo -u postgres psql
CREATE USER newuser WITH PASSWORD 'strong_password';
CREATE DATABASE newdb OWNER newuser ENCODING 'UTF8';
GRANT ALL PRIVILEGES ON DATABASE newdb TO newuser;
Імпорт і експорт
Через pgAdmin4: Клацніть правою кнопкою на базі даних і оберіть Backup або Restore. Підтримуються формати custom, tar, plain і directory.
Через командний рядок:
# Export
pg_dump -U postgres your_database > backup.sql
# Export (custom format, compressed)
pg_dump -U postgres -Fc your_database > backup.dump
# Import (SQL)
psql -U postgres your_database < backup.sql
# Import (custom format)
pg_restore -U postgres -d your_database backup.dump
Для великих баз використовуйте pg_dump -Fc (формат custom) — так резервні копії швидші й менші.
Після встановлення
Fail2Ban — захист від підбору паролів
Сервер постачається з Fail2Ban , попередньо налаштованим для захисту SSH від підбору паролів.
| Правило | Макс. спроб | Тривалість блокування |
|---|---|---|
| SSH | 5 невдалих входів | 10 хвилин |
Корисні команди:
# Check banned IPs
fail2ban-client status sshd
# Unban an IP
fail2ban-client set sshd unbanip 1.2.3.4
Якщо ви випадково заблокували себе, підключіться через VNC-консоль у клієнтській панелі й розблокуйте свою IP.
Керування сервісами
PostgreSQL і Apache працюють через systemd. Типові команди:
# Check service status
systemctl status postgresql
systemctl status apache2
# Restart PostgreSQL
systemctl restart postgresql
# View PostgreSQL logs
journalctl -u postgresql -n 100
Налаштування продуктивності PostgreSQL
PostgreSQL автоматично налаштовується під час першого завантаження з урахуванням доступної RAM. Щоб перевірити поточні параметри:
sudo -u postgres psql -c "SHOW shared_buffers; SHOW effective_cache_size; SHOW work_mem;"
Щоб змінити вручну, відредагуйте /etc/postgresql/16/main/conf.d/99-tuning.conf і перезапустіть PostgreSQL:
systemctl restart postgresql
Облікові дані сервера
Облікові дані PostgreSQL і pgAdmin4 зберігаються у /root/.pg_credentials.
Що вже налаштовано
- Віддалений доступ: PostgreSQL приймає підключення з будь-якої IP на порту 5432 (автентифікація scram-sha-256)
- shared_buffers: Автоматично налаштовується на 25% доступної RAM під час першого завантаження
- effective_cache_size: Встановлено на 75% RAM для оптимального планування запитів
- Кодування: Бази даних створюються з кодуванням UTF-8 (utf8, en_US.UTF-8)
Встановлене ПЗ
| Компонент | Версія |
|---|---|
| Ubuntu | 24.04 LTS |
| PostgreSQL | 16 (PGDG APT) |
| Apache | 2.4 |
| pgAdmin4 | Остання (вебрежим) |
| Certbot | Остання |
| Fail2Ban | 1.0 |
Усунення проблем
| Проблема | Рішення |
|---|---|
| Не вдається віддалено підключитися до PostgreSQL | Перевірте, що порт 5432 не блокує файрвол. Перевірте listen_addresses = '*' у conf.d/99-custom.conf і що pg_hba.conf дозволяє вашу IP |
| pgAdmin4 показує помилку входу | Використовуйте email і Admin Password із замовлення. Облікові дані — у /root/.pg_credentials |
| Сторінка pgAdmin4 не завантажується (HTTP 500) | Перевірте Apache: systemctl status apache2. Перевірте логи pgAdmin: /var/log/pgadmin/pgadmin4.log |
| PostgreSQL не запускається | Перевірте логи: journalctl -u postgresql -n 50. Поширена причина — заповнений диск (df -h /) або некоректна конфігурація (pg_lsclusters) |
| Забули пароль адміністратора PostgreSQL | Підключіться через SSH і перевірте /root/.pg_credentials |
| Заблоковано Fail2Ban | Розблокуйте свою IP через VNC-консоль у клієнтській панелі |
| Забули пароль root | Скиньте його через VNC-консоль у клієнтській панелі |