Установка PostgreSQL (Ubuntu)

🐘 Установка и настройка PostgreSQL на Ubuntu

Этот гайд поможет вам установить PostgreSQL на Ubuntu, создать базу данных и пользователя, настроить удалённое подключение и устранить типичные ошибки.


📦 Установка PostgreSQL

sudo apt update
sudo apt install postgresql postgresql-contrib -y

✅ Проверка установки

sudo systemctl status postgresql

Вы должны увидеть надпись "active (running)" — это значит, что PostgreSQL запущен.


🧑‍💻 Создание базы данных и пользователя

  1. Войти в PostgreSQL от имени суперпользователя:

    sudo -u postgres psql
  2. Создать базу данных:

    CREATE DATABASE your_database_name;
  3. Создать пользователя с паролем:

    CREATE USER your_username WITH PASSWORD 'your_password';
  4. Выдать права:

    GRANT ALL PRIVILEGES ON DATABASE your_database_name TO your_username;
  5. Выйти:

    \q
  6. Проверить созданные БД и пользователей:

    sudo -u postgres psql
    \l  # список баз
    \du # список пользователей

🌐 Настройка удалённого доступа

  1. Найти установленную версию PostgreSQL:

  2. Отредактировать конфиг:

    Найти строку:

    Изменить на:

  3. Отредактировать правила доступа:

    Добавить в конец:

    💡 Вместо md5 можно использовать scram-sha-256 (для PostgreSQL 14+)

  4. Перезапустить PostgreSQL:

  5. Открыть порт:


🔗 Строка подключения

Формат:

Пример:

Пояснение:

  • username — имя пользователя

  • password — пароль

  • hostname — IP или домен сервера

  • port — порт PostgreSQL (по умолчанию 5432)

  • database_name — имя базы

💡 Некоторые приложения используют postgresql:// вместо postgres://


💬 Основные команды PostgreSQL

  • Подключиться к базе (удалённо):

  • Подключиться локально:

  • Внутри psql:

    • \l — список баз

    • \du — список пользователей

    • \c имя_бд — подключение к базе


🧩 Устранение ошибок

🚫 Не удаётся подключиться удалённо

  • Проверить, слушает ли PostgreSQL внешний интерфейс:

    💡 Если netstat не установлен:

  • Проверить статус фаервола:

  • Убедитесь, что в pg_hba.conf есть строка для 0.0.0.0/0 и нужного метода авторизации.

❌ Ошибка авторизации

  • Проверьте логин/пароль

  • Убедитесь, что у пользователя есть права на подключение с внешнего IP

📛 База данных не существует / доступ запрещён

  • Убедитесь, что база существует:

  • Проверьте права:

⚠️ "Permission denied for schema public"

Если видите ошибку доступа к schema public:

Пример строки подключения:

Решение:


🧭 Быстрые команды

🔁 Управление службой PostgreSQL

💾 Работа с базой

  • Резервная копия:

  • Восстановление:

Last updated