PostgreSQL это мощная объектно-реляционная СУБД с открытым исходным кодом. Этот гайд поможет установить и настроить PostgreSQL на Linux.
Установка PostgreSQL
Arch Linux
sudo pacman -S postgresql
Ubuntu/Debian
sudo apt update
sudo apt install postgresql postgresql-contrib
Fedora
sudo dnf install postgresql postgresql-server
sudo postgresql-setup initdb
Инициализация базы данных
Arch Linux
sudo -u postgres initdb -D /var/lib/postgres/data
Запуск службы
sudo systemctl enable postgresql
sudo systemctl start postgresql
Настройка пользователя
Смена пароля пользователя postgres
sudo -u postgres psql
Внутри psql:
\password postgres
Введите новый пароль дважды.
Создание нового пользователя
sudo -u postgres createuser --interactive
Следуйте инструкциям.
Создание базы данных
Через psql
sudo -u postgres psql
CREATE DATABASE mydb;
CREATE USER myuser WITH PASSWORD 'mypassword';
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
\q
Через командную строку
sudo -u postgres createdb mydb
sudo -u postgres createuser myuser
Подключение к базе данных
Через psql
sudo -u postgres psql
Подключение к конкретной базе
sudo -u postgres psql -d mydb
Подключение с конкретным пользователем
psql -U myuser -d mydb
Основные команды psql
-- Список баз данных
\l
-- Подключение к базе
\c database_name
-- Список таблиц
\dt
-- Описание таблицы
\d table_name
-- Выход
\q
-- Помощь
\?
Конфигурация PostgreSQL
Файлы конфигурации
/var/lib/postgres/data/postgresql.conf: основные настройки/var/lib/postgres/data/pg_hba.conf: аутентификация
Разрешение удалённых подключений
Отредактируйте postgresql.conf:
sudo nano /var/lib/postgres/data/postgresql.conf
Найдите и измените:
listen_addresses = '*'
Отредактируйте pg_hba.conf:
sudo nano /var/lib/postgres/data/pg_hba.conf
Добавьте:
host all all 0.0.0.0/0 md5
Перезапустите службу:
sudo systemctl restart postgresql
Резервное копирование
Резервное копирование базы данных
sudo -u postgres pg_dump mydb > backup.sql
Восстановление из резервной копии
sudo -u postgres psql mydb < backup.sql
Резервное копирование всех баз
sudo -u postgres pg_dumpall > all_backup.sql
Управление службой
# Статус службы
sudo systemctl status postgresql
# Запуск
sudo systemctl start postgresql
# Остановка
sudo systemctl stop postgresql
# Перезапуск
sudo systemctl restart postgresql
# Включение автозапуска
sudo systemctl enable postgresql
Решение проблем
Проблема: Не удаётся подключиться
Проверьте статус службы:
sudo systemctl status postgresql
Проверьте логи:
sudo journalctl -xe | grep postgres
Проблема: Ошибка аутентификации
Проверьте pg_hba.conf:
sudo nano /var/lib/postgres/data/pg_hba.conf
Убедитесь, что метод аутентификации правильный.
Проблема: Порт занят
Проверьте, что порт 5432 свободен:
sudo netstat -tlnp | grep 5432
Полезные команды
# Проверка версии PostgreSQL
psql --version
# Проверка активных подключений
sudo -u postgres psql -c "SELECT * FROM pg_stat_activity;"
# Удаление базы данных
sudo -u postgres dropdb mydb
# Удаление пользователя
sudo -u postgres dropuser myuser
# Размер базы данных
sudo -u postgres psql -c "SELECT pg_size_pretty(pg_database_size('mydb'));"
Рекомендации
- Используйте сильные пароли для пользователей PostgreSQL
- Делайте регулярные резервные копии баз данных
- Ограничьте удалённые подключения в pg_hba.conf
- Обновляйте PostgreSQL регулярно
- Мониторьте логи при проблемах
Полезные ресурсы
Автор: ordanax.github.io
Не получилось? Поможем настроить
Задай вопрос в чате — отвечаем быстро, по делу и без воды.

Комментарии