Установка и настройка PostgreSQL на linux alpine 3.18
Подробное руководство по установке, настройке и оптимизации PostgreSQL для linux alpine 3.18
Введение
PostgreSQL - мощная объектно-реляционная СУБД с открытым исходным кодом. Это руководство поможет установить и настроить PostgreSQL 15 на Alpine Linux 3.18, включая базовую конфигурацию и устранение типичных проблем.
Требования
Для работы потребуется:
- Alpine Linux 3.18 (минимальная установка)
- Минимум 512 МБ ОЗУ
- 1 ГБ свободного места на диске
- Права superuser (root)
- Стабильное интернет-соединение
Установка
Подготовка
Обновите систему и установите зависимости:
apk update && apk upgrade
Создайте группу и пользователя postgres:
addgroup -S postgres adduser -S postgres -G postgres
Процесс установки
Установите пакеты PostgreSQL:
1apk add postgresql15 postgresql15-client
Проверьте установку:
1psql --version
Инициализируйте БД:
1su - postgres -c "initdb -D /var/lib/postgresql/data"
Настройка
Основные параметры в /var/lib/postgresql/data/postgresql.conf
:
1listen_addresses = '*' 2port = 5432 3max_connections = 100
Настройте аутентификацию в pg_hba.conf
:
host all all 0.0.0.0/0 scram-sha-256
Запустите сервис:
rc-service postgresql start rc-update add postgresql default
Создайте тестовую БД:
su - postgres -c "psql -c 'CREATE DATABASE testdb;'"
Типичные ошибки и их решения
Ошибка: Could not connect to server
Решение: Проверьте статус сервиса:
rc-service postgresql status
Ошибка: Peer authentication failed
Решение: Измените метод аутентификации в pg_hba.conf
на md5
или scram-sha-256
Заключение
Вы успешно установили PostgreSQL на Alpine Linux 3.18. Для дальнейшей оптимизации рекомендуется настроить параметры shared_buffers и work_mem в соответствии с характеристиками сервера.
Команды
Установка зависимостей
1apk add postgresql15 postgresql15-client
Запуск сервиса
rc-service postgresql start
Создание пользователя БД
su - postgres -c "psql -c \"CREATE USER demo WITH PASSWORD 'SecurePass123';\""
Решение проблем
Сервис не запускается
Проверьте права на каталог /var/lib/postgresql/data
1chown -R postgres:postgres /var/lib/postgresql/data
Нет доступа из внешней сети
Убедитесь что в postgresql.conf установлен listen_addresses = '*'
1grep listen_addresses /var/lib/postgresql/data/postgresql.conf