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
.