Skip to content

📌 Установка PostgreSQL на Ubuntu

На Ubuntu можно установить PostgreSQL через пакетный менеджер apt или из официального репозитория PostgreSQL для получения последних версий.


🔹 1. Установка стандартной версии из репозиториев Ubuntu

🔹 Обновляем пакеты:

sh
sudo apt update && sudo apt upgrade -y

🔹 Устанавливаем PostgreSQL:

sh
sudo apt install -y postgresql postgresql-contrib
  • postgresql – основной сервер базы данных.
  • postgresql-contrib – дополнительные расширения (например, ltree, uuid-ossp).

🔹 Проверяем статус службы:

sh
sudo systemctl status postgresql

Ожидаемый вывод:

● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (running)

🔹 Запускаем PostgreSQL (если не запущен):

sh
sudo systemctl start postgresql

🔹 Добавляем в автозапуск:

sh
sudo systemctl enable postgresql

🔹 2. Установка последней версии PostgreSQL

Стандартный репозиторий Ubuntu может содержать устаревшую версию PostgreSQL. Чтобы установить самую новую, добавьте официальный репозиторий PostgreSQL.

📌 Установка последней версии

🔹 Добавляем репозиторий PostgreSQL:

sh
sudo apt install -y wget gnupg
wget -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/postgresql.asc

🔹 Добавляем репозиторий:

sh
echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list

🔹 Обновляем пакеты и устанавливаем последнюю версию PostgreSQL:

sh
sudo apt update
sudo apt install -y postgresql

🔹 Проверяем установленную версию:

sh
psql --version

Пример вывода:

psql (PostgreSQL) 15.2

🔹 3. Настройка PostgreSQL

После установки PostgreSQL создаётся пользователь postgres, который управляет сервером.

📌 1️⃣ Войти в PostgreSQL

Переключаемся в системного пользователя postgres:

sh
sudo -i -u postgres

Запускаем psql:

sh
psql

Вывод:

postgres=#

📌 2️⃣ Создание нового пользователя и базы данных

Создаём нового пользователя (замените myuser на ваше имя):

sql
CREATE USER myuser WITH PASSWORD 'mypassword';

Создаём базу данных:

sql
CREATE DATABASE mydb OWNER myuser;

Выдаём права:

sql
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

Выходим из psql:

sql
\q

Выходим из пользователя postgres:

sh
exit

🔹 4. Разрешить удалённый доступ (по необходимости)

По умолчанию PostgreSQL принимает подключения только с localhost.

📌 Разрешить внешние подключения

Редактируем конфиг postgresql.conf:

sh
sudo nano /etc/postgresql/*/main/postgresql.conf

Ищем строку:

# listen_addresses = 'localhost'

Заменяем на:

listen_addresses = '*'

Сохраняем (Ctrl + X, Y, Enter).

📌 Разрешить доступ в pg_hba.conf

Редактируем файл:

sh
sudo nano /etc/postgresql/*/main/pg_hba.conf

Добавляем строку:

host    all             all             0.0.0.0/0               md5

Сохраняем и выходим.

Перезапускаем PostgreSQL:

sh
sudo systemctl restart postgresql

Теперь сервер PostgreSQL принимает подключения извне. Можно подключаться через pgAdmin, DBeaver или psql с другого компьютера.


🔹 5. Проверка работы PostgreSQL

🔹 Проверить статус сервера:

sh
sudo systemctl status postgresql

🔹 Проверить список баз данных:

sh
sudo -u postgres psql -c "\l"

🔹 Проверить список пользователей:

sh
sudo -u postgres psql -c "\du"

🔹 6. Удаление PostgreSQL

Если нужно удалить PostgreSQL:

sh
sudo apt remove --purge postgresql postgresql-contrib -y
sudo apt autoremove -y
sudo rm -rf /var/lib/postgresql

✅ Итог

  • Установили PostgreSQL стандартной версией (apt install postgresql).
  • Или установили новейшую версию через репозиторий PostgreSQL.
  • Настроили пользователя и базу данных.
  • Открыли доступ для внешних соединений (опционально).

Теперь PostgreSQL полностью готов к работе! 🚀