Пошук уроків, статей та іншого контенту
Встановимо PostgreSQL у потрібному середовищі, налаштуємо сервер і перевіримо його готовність до роботи.
PostgreSQL складається з двох основних частин:
сервер — зберігає дані та виконує SQL-запити;
клієнт psql — командний інструмент для підключення до сервера.
Після встановлення потрібно:
встановити PostgreSQL;
запустити сервер;
перевірити наявність клієнта;
підключитися до сервера;
переконатися, що сервер приймає запити.
Оновіть список пакетів і встановіть PostgreSQL:
sudo apt update
sudo apt install postgresql postgresql-contribПакет postgresql містить сервер і стандартні інструменти. Пакет postgresql-contrib додає додаткові корисні розширення.
Перевірте стан сервера:
sudo systemctl status postgresqlЯкщо сервер не запущений, запустіть його:
sudo systemctl start postgresqlЩоб PostgreSQL автоматично запускався після перезавантаження системи:
sudo systemctl enable postgresqlПідключіться до сервера від імені системного користувача postgres:
sudo -u postgres psqlЯкщо підключення успішне, ви побачите запрошення приблизно такого вигляду:
postgres=#Виконайте тестовий SQL-запит:
SELECT version();Завершити роботу в psql можна командою:
\qНайзручніше встановити PostgreSQL за допомогою Homebrew.
Спочатку встановіть пакет PostgreSQL:
brew install postgresqlЗапустіть сервер як фонову службу:
brew services start postgresqlПеревірте версію клієнта:
psql --versionПісля цього підключіться до стандартної бази даних:
psql postgresВиконайте тестовий запит:
SELECT version();Завершіть роботу клієнта:
\qПеревірити стан служб Homebrew можна командою:
brew services listУ списку служба PostgreSQL має мати стан started.
Щоб зупинити PostgreSQL:
brew services stop postgresqlДля Windows PostgreSQL встановлюється за допомогою офіційного інсталятора.
Під час встановлення:
залиште стандартний каталог встановлення, якщо немає спеціальних вимог;
виберіть компоненти PostgreSQL Server і Command Line Tools;
запам’ятайте пароль користувача postgres;
залиште стандартний порт 5432;
дозвольте інсталятору запустити PostgreSQL як системну службу.
Пароль користувача postgres потрібен для підключення до сервера. Не використовуйте простий пароль навіть для локальної розробки, якщо база доступна з інших пристроїв.
Після встановлення відкрийте PowerShell або Command Prompt і перевірте клієнт:
psql --versionПідключіться до сервера:
psql -U postgres -h localhostПрограма попросить пароль, який ви вказали під час встановлення.
Якщо підключення успішне, виконайте запит:
SELECT version();Вийти з psql:
\qСтан служби PostgreSQL у Windows можна перевірити так:
натисніть Win + R;
введіть services.msc;
знайдіть службу, назва якої починається з postgresql;
переконайтеся, що її стан — Running.
Команда pg_isready перевіряє, чи приймає PostgreSQL підключення:
pg_isreadyПри успішній перевірці з’явиться повідомлення, подібне до:
/var/run/postgresql:5432 - accepting connectionsДля перевірки конкретного хоста й порту:
pg_isready -h localhost -p 5432Параметри команди:
-h localhost — сервер працює на цьому комп’ютері;
-p 5432 — стандартний порт PostgreSQL;
accepting connections — сервер готовий приймати підключення.
Типова конфігурація PostgreSQL підходить для локальної розробки:
порт — 5432;
сервер слухає локальні підключення;
дані зберігаються на локальному диску;
доступ контролюється правилами автентифікації.
Переглянути поточні значення параметрів можна з psql:
SHOW port;
SHOW listen_addresses;
SHOW config_file;Параметр port показує порт сервера. Зазвичай це 5432.
Параметр listen_addresses визначає, на яких мережевих адресах сервер приймає підключення. Для локальної розробки не потрібно відкривати PostgreSQL для всіх мережевих інтерфейсів.
Параметр config_file показує шлях до основного конфігураційного файлу PostgreSQL.
Після встановлення можна виконати запит без входу в інтерактивний режим:
psql -h localhost -U postgres -d postgres -c "SELECT current_database(), current_user;"Команда містить такі параметри:
-h localhost — підключення до локального сервера;
-U postgres — ім’я користувача;
-d postgres — назва бази даних;
-c — виконання SQL-запиту та завершення роботи.
Очікуваний результат міститиме назву бази postgres і користувача, від імені якого виконано запит.
На Linux підключення локального системного користувача postgres часто виконується без пароля:
sudo -u postgres psql -d postgres -c "SELECT current_database();"Це нормальна поведінка для локальної автентифікації за замовчуванням.
postgresПідключіться до PostgreSQL з правами адміністратора:
sudo -u postgres psqlУ Windows або macOS підключення може виглядати так:
psql -U postgres -h localhostУ консолі psql виконайте:
\password postgresВведіть новий пароль двічі. Після цього перевірте підключення через TCP:
psql -h localhost -U postgres -d postgresПрограма має запросити встановлений пароль.
Не зберігайте пароль у відкритому вигляді в команді, файлах із кодом або системі контролю версій.
Наведений сценарій підходить для Linux або macOS:
# Перевіряємо версію клієнта
psql --version
# Перевіряємо, чи сервер приймає підключення
pg_isready -h localhost -p 5432
# Виконуємо тестовий запит
psql -h localhost -U postgres -d postgres -c "SELECT version();"
# Перевіряємо основні параметри сервера
psql -h localhost -U postgres -d postgres -c "SHOW port; SHOW listen_addresses;"У Windows ці самі команди можна виконати в PowerShell, якщо каталог із psql і pg_isready додано до змінної PATH.
psql: command not foundКлієнт PostgreSQL не встановлений або його каталог не додано до PATH.
Що зробити:
переконатися, що встановлено компонент командного рядка;
перезапустити термінал після встановлення;
у Windows перевірити змінну PATH;
повторити команду psql --version.
connection refusedСервер не запущений або працює на іншому порту.
Перевірте стан служби та запустіть PostgreSQL:
sudo systemctl status postgresql
sudo systemctl start postgresqlПотім повторіть перевірку:
pg_isready -h localhost -p 5432password authentication failedНеправильно вказано пароль або користувача.
Перевірте:
ім’я користувача;
назву бази даних;
пароль;
адресу сервера;
порт.
Приклад підключення:
psql -h localhost -p 5432 -U postgres -d postgresrole does not existУ PostgreSQL немає користувача із вказаним ім’ям. Ім’я користувача операційної системи та ім’я користувача PostgreSQL можуть відрізнятися.
Для першого підключення використовуйте адміністративного користувача postgres або створіть потрібну роль окремо.
5432 уже зайнятийІнший процес уже використовує цей порт або запущено інший екземпляр PostgreSQL.
Перевірте параметр порту в psql:
SHOW port;Для локальної розробки бажано використовувати один запущений екземпляр PostgreSQL і стандартний порт 5432.
Після завершення встановлення потрібно переконатися, що:
команда psql --version повертає версію клієнта;
служба PostgreSQL запущена;
команда pg_isready повідомляє accepting connections;
до сервера можна підключитися через psql;
тестовий запит SELECT version(); виконується без помилок;
сервер використовує очікуваний порт, зазвичай 5432.
Тепер PostgreSQL встановлено та готово до створення баз даних і виконання SQL-запитів.