4.6 KiB
Базы данных
PostgreSQL
Установка
Установка PostgreSQL в Ubuntu:
sudo apt update
sudo apt install postgresql postgresql-contrib
Установка в Solus:
sudo eopkg it postgresql postgresql-contrib
Пакет postgresql-contrib содержит дополнительные утилиты и функциональные возможности.
В процессе установки создаётся учётная запись postgres, которая связана с используемой по умолчанию ролью postgres.
Использование
После установки, чтобы подключиться к СУБД PostgreSQL необходимо открыть shell из под пользователя postgres:
sudo -i -u postgres
где -i запуск оболочки входа в систему от имени целевого пользователя -u postgres.
После входа в оболочку под пользователем postgres запустить утилиту psql:
psql
Или использовать более быстрый способ:
sudo -u postgres psql
Создание новой роли
После входа в оболочку под пользователем postgres, можно создать новую роль с помощью следующей команды:
createuser --interactive
При создании необходимо будет ввести имя новой роли и указать, будет ли являться новая роль суперпользователем:
Enter name of role to add: user
Shall the new role be a superuser? (y/n) y
Для любой роли, используемой для входа, существует база данных с тем же именем, к которой роль может получить доступ. Это означает, что если созданный пользователь будет иметь имя user, эта роль попытается подключиться к базе данных, которая также называется "user" по умолчанию. Необходимо создать соответствующую базу данных:
createdb user
При этом должен существовать пользователь Linux с тем же именем, что и имя роли и базы данных в Postgres.
Смена пароля
Для установки/смены пароля выполнить в psql команду:
\password user
где user - имя пользователя, у которого необходимо сменить пароль.
Удалённый доступ
Для открытия удалённого доступа необходимо отредактировать файл /etc/postgresql/14/main/postgresql.conf, где 14 - версия PostgreSQL:
sudo nano /etc/postgresql/14/main/postgresql.conf
Раскомментировать параметр listen_addresses и установить в качестве значения звёздочку (*):
listen_addresses = '*'
Сохранить и перезагрузить сервер PostgreSQL, в Ubuntu:
sudo systemctl restart postgresql.service
в других дистрибутивах:
sudo service postgresql restart
Восстановление бэкапа
Восстановление бэкапа из файла *.sql:
psql -f backup.sql
Возможные ошибки
При подключении к удалённой БД может возникнуть ошибка:
FATAL: no pg_hba.conf entry for host "192.168.56.1", user "user", database "user", SSL encryption
где 192.168.56.1 - адрес компьютера, с которого происходит подключение, user - имя пользователя, от которого происходит подключение, а также имя базы данных.
Необходимо отредактировать файл /etc/postgresql/14/main/pg_hba.conf, где 14 - версия PostgreSQL:
sudo nano /etc/postgresql/14/main/pg_hba.conf
и добавить запись:
host all user 192.168.56.1/32 scram-sha-256
которая разрешает доступ логина user к любой базе данных с IP-адреса 192.168.56.1.