Установка PostgreSQL 16: пошаговая инструкция
PostgreSQL 16 — это мощная объектно-реляционная система управления базами данных с открытым исходным кодом. В этом руководстве мы установим PostgreSQL 16 на операционные системы семейства Linux (Ubuntu/Debian и CentOS/RHEL) с помощью официальных репозиториев. Инструкция рассчитана на начинающих пользователей, знакомых с командной строкой.
Что понадобится
- Права суперпользователя (
root) или доступ кsudo - Активное подключение к интернету
- Терминал с поддержкой командной строки
- Для Ubuntu/Debian — пакет
wgetиca-certificates(обычно предустановлены) - Для CentOS/RHEL — версия 7, 8 или 9 (на момент написания поддерживаются)
Пошаговая инструкция
1. Добавление официального репозитория PostgreSQL
Ubuntu и Debian
Откройте терминал и выполните следующие команды для добавления репозитория:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
CentOS / RHEL
Установите репозиторий через пакет pgdg-redhat-repo. Пример для CentOS 8:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum -q makecache
Для CentOS 7 замените EL-8 на EL-7, для CentOS 9 — на EL-9.
2. Установка сервера PostgreSQL 16
Ubuntu / Debian
sudo apt install postgresql-16
CentOS / RHEL
Установите сервер и дополнительные утилиты:
sudo yum install postgresql16-server postgresql16-contrib
3. Инициализация базы данных
Ubuntu / Debian — база инициализируется автоматически после установки пакета. Дополнительных действий не требуется.
CentOS / RHEL — необходимо инициализировать вручную:
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
4. Запуск сервера и добавление в автозагрузку
Ubuntu / Debian
sudo systemctl enable postgresql
sudo systemctl start postgresql
CentOS / RHEL
sudo systemctl enable postgresql-16
sudo systemctl start postgresql-16
5. Проверка установки
Выполните запрос к серверу через учётную запись postgres:
sudo -u postgres psql -c "SELECT version();"
Вы должны увидеть строку, содержащую PostgreSQL 16.x.
6. (Опционально) Настройка пароля для пользователя postgres
По умолчанию вход в локальную базу возможен без пароля по методу peer. Для смены пароля выполните:
sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'ваш_пароль';"
Возможные ошибки и их решения
Ошибка: "E: Unable to locate package postgresql-16"
- Причина: не обновлён список пакетов после добавления репозитория.
- Решение: выполните
sudo apt update(Ubuntu) илиsudo yum makecache(CentOS).
Ошибка: "could not connect to server: Connection refused"
- Причина: сервер не запущен.
- Решение: проверьте состояние сервиса (
systemctl status postgresql), запустите его и настройте автозагрузку.
Ошибка: "psql: FATAL: Peer authentication failed for user 'postgres'"
- Причина: метод аутентификации
peerне подходит при подключении не от имени системного пользователя. - Решение: подключитесь через
sudo -u postgres psqlили измените файлpg_hba.conf, заменивpeerнаmd5илиscram-sha-256(после изменения перезапустите сервер).
Ошибка: конфликт порта (5432 уже используется)
- Причина: другой экземпляр PostgreSQL или иной сервис занимает порт.
- Решение: смените порт в файле
postgresql.conf(параметрport), например на 5433, затем перезапустите сервер.
Полезные советы
- Для управления базами данных через графический интерфейс установите pgAdmin 4:
sudo apt install pgadmin4(Ubuntu) или загрузите с официального сайта. - Регулярно создавайте резервные копии баз с помощью
pg_dumpилиpg_dumpall. Пример:pg_dump -U username mydb > mydb.sql. - Если требуется удалённое подключение к серверу, отредактируйте два файла в каталоге
/etc/postgresql/16/main/:postgresql.conf— раскомментируйтеlisten_addresses = '*'.pg_hba.conf— добавьте строкуhost all all 0.0.0.0/0 scram-sha-256(замените на нужную подсеть). После изменений обязательно перезапустите сервер:sudo systemctl restart postgresql.
- Для повышения безопасности используйте сложные пароли и включите встроенный механизм шифрования (
ssl).
Комментарии (0)