Главная > ОС > Linux > Centos > 7 > Установка и настройка PostgreSQL на linux centos 7

Установка и настройка PostgreSQL на linux centos 7

Обновлено: 16.04.2025Руководство

Установка и настройка PostgreSQL на linux centos 7

Подробное руководство по установке, настройке и оптимизации PostgreSQL для linux centos 7

Введение

PostgreSQL - мощная объектно-реляционная СУБД с открытым исходным кодом. Это руководство поможет установить и настроить PostgreSQL 12 на CentOS 7 с базовыми параметрами безопасности и оптимизации.

Требования

Минимальные требования:

  • CentOS 7 (x86_64)
  • 1 ГБ оперативной памяти
  • 10 ГБ свободного места на диске
  • Права root или sudo

Рекомендуется предварительно обновить систему:

sudo yum update -y

Установка

Подготовка

  1. Добавляем официальный репозиторий PostgreSQL:
1sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
  1. Очищаем кеш пакетов:
1sudo yum clean all

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

  1. Устанавливаем PostgreSQL 12 и клиентские утилиты:
1sudo yum install -y postgresql12-server postgresql12-contrib
  1. Инициализируем БД:
1sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
  1. Запускаем службу:
1sudo systemctl enable postgresql-12
2sudo systemctl start postgresql-12
  1. Проверяем статус:
systemctl status postgresql-12

Настройка

  1. Настраиваем доступ из сети:
1sudo nano /var/lib/pgsql/12/data/postgresql.conf

Изменить строку:

1listen_addresses = '*'
  1. Настраиваем аутентификацию:
1sudo nano /var/lib/pgsql/12/data/pg_hba.conf

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

host    all             all             0.0.0.0/0               md5
  1. Перезагружаем службу:
sudo systemctl restart postgresql-12
  1. Создаем пользователя и БД:
1sudo -u postgres psql
2CREATE DATABASE exampledb;
3CREATE USER exampleuser WITH ENCRYPTED PASSWORD 'StrongPassword';
4GRANT ALL PRIVILEGES ON DATABASE exampledb TO exampleuser;
5\q
  1. Открываем порт в firewall:
1sudo firewall-cmd --permanent --add-port=5432/tcp
2sudo firewall-cmd --reload

Типичные ошибки и их решения

Ошибка: Нет доступа к серверу Решение: Проверить настройки pg_hba.conf и listen_addresses

Ошибка: FATAL: password authentication failed Решение: Пересоздать пароль:

sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'NewPassword'"

Ошибка: Недостаточно памяти Решение: Настроить shared_buffers в postgresql.conf

Заключение

Вы успешно установили и настроили PostgreSQL на CentOS 7. Для повышения безопасности:

  • Регулярно обновляйте СУБД
  • Настройте бэкапы
  • Используйте SSL-шифрование
  • Ограничивайте доступ по IP

Команды

Установка репозитория PostgreSQL

1sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Запуск службы PostgreSQL

sudo systemctl start postgresql-12

Создание пользователя БД

1sudo -u postgres createuser --interactive

Решение проблем

Сервис не запускается после изменения конфига

Проверить синтаксис конфигурационных файлов через:

sudo -u postgres pg_ctl -D /var/lib/pgsql/12/data/ start
1journalctl -xe --unit postgresql-12

Ошибка разрешений для директории данных

Изменить владельца каталога:

1sudo chown -R postgres:postgres /var/lib/pgsql/12/data
1sudo chown -R postgres:postgres /var/lib/pgsql/12/data