Все об Arch Linux

Arch Linux будет тем, что вы из него сделаете!

PostgreSQL настройка на Linux — полное руководство

PostgreSQL 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'));"

Рекомендации

  1. Используйте сильные пароли для пользователей PostgreSQL
  2. Делайте регулярные резервные копии баз данных
  3. Ограничьте удалённые подключения в pg_hba.conf
  4. Обновляйте PostgreSQL регулярно
  5. Мониторьте логи при проблемах

Полезные ресурсы


Автор: ordanax.github.io
Telegram: @linux4at
MAX: Присоединиться



Читайте также

Комментарии

Загрузка…

Откроется GitHub: создайте новый issue с вашим комментарием (кнопка «Submit new issue»). После отправки обновите эту страницу — комментарий появится ниже.