Заощадьте 15% на всіх хостингових послугах

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код: Skills Почати
Рубрики
Linux Адміністрація

Як встановити PostgreSQL на Debian: Повний покроковий посібник

PostgreSQL — одна з найпотужніших у світі реляційних систем управління базами даних (RDBMS) з відкритим вихідним кодом. Відома своєю надійністю, розширюваністю та суворою відповідністю SQL, вона є кращим рушієм баз даних для розробників, інженерів даних і системних адміністраторів, що працюють з виробничими навантаженнями. Незалежно від того, чи створюєте ви веб-застосунок, сховище даних або серверний API, PostgreSQL забезпечує необхідну продуктивність і гнучкість.

Цей вичерпний посібник проведе вас через кожен крок встановлення та налаштування PostgreSQL на системі на основі Debian — від початкового встановлення пакетів до налаштування віддаленого доступу та управління базами даних. Якщо ви запускаєте свої навантаження на плані VPS Hosting, цей посібник повністю застосовний до вашого середовища.

Передумови

Перш ніж почати, переконайтеся, що у вас є:

  • Сервер Debian 11 (Bullseye) або Debian 12 (Bookworm)
  • Обліковий запис користувача з привілеями sudo
  • SSH доступ до вашого сервера
  • Стабільне підключення до інтернету

Крок 1: Оновлення списку пакетів системи

Перед встановленням будь-якого нового програмного забезпечення рекомендується синхронізувати індекс пакетів і оновити застарілі пакети. Це забезпечує сумісність і знижує ризик конфліктів залежностей.

Відкрийте термінал або підключіться до сервера через SSH і виконайте:

sudo apt update
sudo apt upgrade -y
    apt update оновлює локальний індекс пакетів із налаштованих репозиторіїв.
    apt upgrade встановлює останні версії всіх поточно встановлених пакетів.
    
    Після завершення оновлення ваша система Debian готова до чистого встановлення PostgreSQL.
    Крок 2: Встановлення PostgreSQL на Debian
    PostgreSQL доступний безпосередньо з офіційних репозиторіїв Debian, що робить встановлення простим і надійним. Виконайте таку команду:
    sudo apt install postgresql postgresql-contrib -y
    Ось що надає кожен пакет:
    
    
    
    
    Пакет
    Опис
    
    
    
    
    postgresql
    Основний сервер бази даних PostgreSQL
    
    
    postgresql-contrib
    Додаткові утиліти, розширення та інструменти, що зазвичай використовуються разом із PostgreSQL
    
    
    
    
    Процес встановлення автоматично створює системного користувача з іменем postgres, ініціалізує стандартний кластер бази даних і реєструє PostgreSQL як системну службу.
    Крок 3: Перевірка встановлення PostgreSQL
    Після завершення встановлення PostgreSQL має запуститися автоматично. Перевірте, чи служба активна та працює:
    sudo systemctl status postgresql
    Ви повинні побачити вивід, подібний до:
    ● postgresql.service - PostgreSQL RDBMS
         Loaded: loaded (/lib/systemd/system/postgresql.service; enabled)
         Active: active (running) since ...
    Якщо PostgreSQL не запущено, запустіть його вручну:
    sudo systemctl start postgresql
    Щоб PostgreSQL запускався автоматично щоразу при перезавантаженні сервера:
    sudo systemctl enable postgresql
    Це особливо важливо на хмарних серверах і в середовищах VPS Hosting, де перезавантаження можуть відбуватися під час технічного обслуговування.
    Крок 4: Базове налаштування PostgreSQL
    PostgreSQL використовує модель автентифікації на основі ролей. Після встановлення створюється роль суперкористувача за замовчуванням з іменем postgres. У цьому розділі описано, як отримати доступ до оболонки PostgreSQL, створювати ролі та налаштовувати бази даних.
    4.1 Перемикання на системного користувача PostgreSQL
    Перейдіть до системного користувача postgres для отримання адміністративного доступу:
    sudo -i -u postgres
    Тепер відкрийте інтерактивний термінал PostgreSQL:
    psql
    Вас привітає запрошення PostgreSQL:
    psql (15.x)
    Type "help" for help.
    
    postgres=#
    Звідси ви можете виконувати SQL-команди, керувати ролями та адмініструвати бази даних.
    4.2 Створення нової ролі PostgreSQL (користувача)
    PostgreSQL керує доступом через ролі. Щоб створити нову роль із захищеним паролем:
    CREATE USER your_username WITH PASSWORD 'your_strong_password';
    Замініть your_username та your_strong_password на бажані облікові дані.
    Щоб надати цій ролі привілеї суперкористувача (використовуйте обережно у виробничому середовищі):
    ALTER USER your_username WITH SUPERUSER;
    Після завершення вийдіть із запрошення psql:
    q
    4.3 Створення нової бази даних
    Залишаючись авторизованим як системний користувач postgres, створіть нову базу даних:
    createdb your_database_name
    Щоб призначити право власності на базу даних щойно створеному користувачу:
    psql
    ALTER DATABASE your_database_name OWNER TO your_username;
    q
    Це гарантує, що your_username матиме повний контроль над your_database_name без необхідності доступу суперкористувача для звичайних операцій.
    Крок 5: Налаштування віддаленого доступу (необов’язково)
    За замовчуванням PostgreSQL приймає підключення лише з localhost (127.0.0.1). Якщо ваш сервер застосунків або машина розробника розміщені окремо — наприклад, на плані Dedicated Servers — вам потрібно буде увімкнути віддалений доступ.
    > ⚠️ Попередження щодо безпеки: Відкриття PostgreSQL для віддалених підключень збільшує поверхню атаки. Завжди використовуйте надійні паролі, обмежуйте доступ до відомих діапазонів IP і розгляньте можливість використання SSL-зашифрованого підключення.
    5.1 Зміна основного файлу конфігурації PostgreSQL
    Відкрийте основний файл конфігурації PostgreSQL. Замініть 15 на номер встановленої версії:
    sudo nano /etc/postgresql/15/main/postgresql.conf
    Знайдіть такий рядок:
    #listen_addresses = 'localhost'
    Розкоментуйте його та змініть значення для прийняття підключень на всіх інтерфейсах:
    listen_addresses = '*'
    Щоб обмежити доступ до певної IP-адреси:
    listen_addresses = '192.168.1.100'
    Збережіть файл і вийдіть (Ctrl+X, потім Y, потім Enter).
    5.2 Зміна файлу автентифікації клієнтів
    Далі відредагуйте файл pg_hba.conf, щоб визначити, яким хостам дозволено підключатися:
    sudo nano /etc/postgresql/15/main/pg_hba.conf
    Додайте такий рядок у кінець файлу, щоб дозволити підключення з будь-якої IP-адреси з використанням автентифікації за паролем:
    host    all             all             0.0.0.0/0               md5
    Для підвищення безпеки замініть 0.0.0.0/0 на конкретний діапазон IP, наприклад:
    host    all             all             203.0.113.0/24          md5
    Збережіть файл і вийдіть.
    5.3 Перезапуск PostgreSQL для застосування змін
    sudo systemctl restart postgresql
    5.4 Відкриття порту брандмауера (якщо застосовно)
    Якщо ваш сервер використовує ufw, дозвольте трафік PostgreSQL на порту 5432:
    sudo ufw allow 5432/tcp
    sudo ufw reload
    Крок 6: Підключення до PostgreSQL віддалено
    Після налаштування віддаленого доступу ви можете підключитися до свого сервера PostgreSQL з будь-якої віддаленої машини, на якій встановлено клієнт PostgreSQL.
    Встановіть клієнт PostgreSQL на віддаленій машині:
    sudo apt install postgresql-client -y
    Підключіться до віддаленого сервера PostgreSQL:
    psql -h your_server_ip -U your_username -d your_database_name
    Замініть заповнювачі таким чином:
    
    
    
    
    Заповнювач
    Опис
    
    
    
    
    your_server_ip
    Публічна IP-адреса вашого сервера PostgreSQL
    
    
    your_username
    Роль PostgreSQL, яку ви створили
    
    
    your_database_name
    Назва цільової бази даних
    
    
    
    
    Вам буде запропоновано ввести пароль, встановлений під час створення ролі.
    Крок 7: Управління базами даних PostgreSQL
    Після встановлення та налаштування PostgreSQL ви можете керувати своїми базами даних за допомогою оболонки psql та вбудованих утиліт командного рядка.
    7.1 Перегляд усіх баз даних
    У запрошенні psql виконайте:
    l
    Це відображає всі бази даних на сервері разом із їхніми власниками, кодуванням і привілеями доступу.
    7.2 Перемикання на іншу базу даних
    c your_database_name
    7.3 Перегляд усіх таблиць у поточній базі даних
    dt
    7.4 Резервне копіювання бази даних PostgreSQL
    Використовуйте утиліту pg_dump для створення логічної резервної копії:
    pg_dump your_database_name > your_database_name_backup.sql
    Для стисненої резервної копії (рекомендується для великих баз даних):
    pg_dump -Fc your_database_name > your_database_name_backup.dump
    7.5 Відновлення бази даних PostgreSQL
    Для відновлення зі звичайної резервної копії SQL:
    psql your_database_name < your_database_name_backup.sql
    Для відновлення зі стисненої резервної копії:
    pg_restore -d your_database_name your_database_name_backup.dump
    Регулярне резервне копіювання є критично важливою частиною будь-якої стратегії виробничої бази даних. Якщо вам потрібне кероване хостингове середовище з підтримкою автоматичного резервного копіювання, розгляньте Dedicated Servers від AlexHost для розгортання баз даних з високою доступністю.
    Крок 8: Захист вашого встановлення PostgreSQL
    Посилення безпеки є необхідним для будь-якої бази даних, доступної з інтернету або в середовищах спільного хостингу. Ось ключові найкращі практики:
    Використання SSL/TLS для зашифрованих підключень
    PostgreSQL підтримує власні SSL-підключення. Увімкніть SSL у postgresql.conf:
    ssl = on
    Вам знадобиться дійсний SSL-сертифікат. AlexHost пропонує SSL Certificates для захисту комунікацій вашого сервера.
    Обмеження привілеїв ролей
    Дотримуйтесь принципу найменших привілеїв. Надавайте ролям лише ті дозволи, які їм дійсно потрібні:
    GRANT CONNECT ON DATABASE your_database_name TO your_username;
    GRANT USAGE ON SCHEMA public TO your_username;
    GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO your_username;
    Регулярна зміна паролів
    Periodically update PostgreSQL role passwords:
    ALTER USER your_username WITH PASSWORD 'new_strong_password';
    Моніторинг журналів PostgreSQL
    Журнали PostgreSQL розташовані за адресою:
    /var/log/postgresql/
    Регулярно переглядайте ці журнали для виявлення спроб несанкціонованого доступу або аномалій продуктивності.
    Вибір правильного хостингового середовища для PostgreSQL
    Продуктивність вашої бази даних PostgreSQL безпосередньо пов’язана з якістю базової інфраструктури. Ось короткий порівняльний огляд варіантів хостингу AlexHost для навантажень баз даних:
    
    
    
    
    Тип хостингу
    Найкраще для
    Ключова перевага
    
    
    
    
    VPS Hosting
    Малих і середніх застосунків
    Виділені ресурси, повний root-доступ
    
    
    Dedicated Servers
    Баз даних з високим трафіком у виробничому середовищі
    Максимальна продуктивність та ізоляція
    
    
    GPU Hosting
    Навантажень AI/ML з PostgreSQL + pgvector
    Обробка даних з прискоренням GPU
    
    
    
    
    Для більшості веб-застосунків і середовищ розробки VPS із сховищем NVMe SSD забезпечує відмінний баланс продуктивності та економічної ефективності.
    Висновок
    Встановлення PostgreSQL на Debian — це простий процес, який займає лише кілька хвилин при дотриманні правильних кроків. З цього посібника ви дізналися, як:
    
    Оновити систему Debian і встановити PostgreSQL з офіційних репозиторіїв
    Перевірити статус служби та увімкнути автоматичний запуск
    Створювати ролі та бази даних із належним правом власності
    Безпечно налаштувати віддалений доступ за допомогою postgresql.conf та pg_hba.conf
  • Підключитися до PostgreSQL з віддаленої машини
  • Керувати базами даних за допомогою команд psql та утиліт резервного копіювання
  • Застосувати основні заходи посилення безпеки

Незалежно від того, чи розгортаєте ви невелике середовище розробки або виробничий сервер баз даних, інфраструктура AlexHost забезпечує надійність, швидкість і безпеку, яких вимагають ваші навантаження PostgreSQL. Ознайомтеся з планами VPS Hosting, щоб розпочати роботу в повністю керованому, високопродуктивному середовищі вже сьогодні.