В статье описана установка PostgreSQL 13 на Ubuntu 20.04 и последующая настройка связи r_keeper с удалённым сервером PostgreSQL.
Установка PostgreSQL на Debian 11 описана в статье по установке r_keeper 7 на Linux.

Обновление системыLink to Обновление системы

Обновите систему командой

sudo apt update
sudo apt -y upgrade
BASH

После обновления системы выполните перезагрузку, чтобы запустить новое ядро.

Добавление репозитория PostgreSQL 13 в UbuntuLink to Добавление репозитория PostgreSQL 13 в Ubuntu

Добавьте репозиторий PostgreSQL

sudo apt -y install vim bash-completion wget
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee  /etc/apt/sources.list.d/pgdg.list
BASH

Установка PostgreSQL 13Link to Установка PostgreSQL 13

Установите PostgreSQL 13

sudo apt update
sudo apt install postgresql-13 postgresql-client-13
BASH

Если после установки сервер баз данных не запустился, то выполните запуск командой:

sudo pg_ctlcluster 13 main start
BASH

Проверка соединения с PostgreSQLLink to Проверка соединения с PostgreSQL

Во время установки автоматически создается пользователь postgres. Этот пользователь имеет полный доступ суперадминистратора ко всему экземпляру PostgreSQL. Системный пользователь, вошедший в систему, должен иметь права sudo перед переключением на эту учетную запись.

sudo su - postgres
BASH

Чтобы изменить пароль пользователя на надёжный, введите:

psql -c "alter user postgres with password 'YourSuperPass';"
BASH

Если PostgreSQL уже запущен, то укажите запрос:

alter user postgres with password 'YourSuperPass';
BASH

Запустите командную строку PostgreSQL:

psql
BASH

psql (13.3 (Ubuntu 13.3-1.pgdg20.04+1))00
Введите help, чтобы получить справку.

Детализация подключения:

\conninfo
BASH

Вы подключены к базе данных "postgres" как пользователь "postgres" через сокет в "/var/run/postgresql", порт "5432".

Создание базы данныхLink to Создание базы данных

Создайте базу данных:

CREATE DATABASE RK765;
BASH

CREATE DATABASE

Создайте пользователя базы данных с паролем

CREATE USER ucs WITH ENCRYPTED PASSWORD '123';
SQL

CREATE ROLE

Назначьте права созданному пользователю в рамках указанной базы данных

GRANT ALL PRIVILEGES ON DATABASE rk765 to ucs;   
BASH

GRANT

Предоставьте созданному пользователю права создавать роли. Эти права необходимы для работы с r_keeper:

alter role ucs with createrole;
BASH

ALTER ROLE

Вывести список баз данных

\l
BASH


postgres=# \l
                                 Список баз данных
   
Имя    | Владелец | Кодировка | LC_COLLATE  |  LC_CTYPE   |     Права доступа      
-----------+----------+-----------+-------------+-------------+-----------------------
postgres  | postgres | UTF8      | ru_RU.UTF-8 | ru_RU.UTF-8 |  
rk765     | postgres | UTF8      | ru_RU.UTF-8 | ru_RU.UTF-8 |  
template0 | postgres | UTF8      | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres          +
          |          |           |             |             | postgres=CTc/postgres
template1 | postgres | UTF8      | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres          +
          |          |           |             |             | postgres=CTc/postgres
(4 строки)

Выход из psql 

\q
BASH

Выход из суперпользователя postgres

exit
BASH

logout

Настройка удалённого подключенияLink to Настройка удалённого подключения

Установка PostgreSQL 13 на Ubuntu по умолчанию принимает соединения только от localhost. В производственных средах будет центральный сервер базы данных и подключенные к нему удаленные клиенты.

Разрешение удаленного подключения

Чтобы разрешить удаленные подключения, отредактируйте файл конфигурации PostgreSQL:

sudo nano /etc/postgresql/13/main/postgresql.conf
BASH

Откроется конфигурационный файл. В нем раскоментируйте или добавьте строчку на выбор:

  • прослушивать все интерфейсы:

    listen_addresses = '*'          # Listen on all interfaces
    BASH
  • прослушивать только на заданных адресах:

    listen_addresses = '192.168.1.101' # Listen on specified private IP address
    BASH

В нашем случае выбран адрес 192.168.1.101, у вас будет другой

Для текстового редактора NANO:

  • Чтобы сохранить изменения в файле используйте сочетание клавиш ctrl + o
  • Для выхода из режима редактирования файла используйте ctrl + x

Разрешение приема удаленных подключений

Настройте PostgreSQL на прием удаленных подключений от разрешенных хостов.
Перейдите в конфигурационный файл:

sudo nano /etc/postgresql/13/main/pg_hba.conf
BASH

Раскоментируйте или добавьте новую строчку на выбор:

  • прием удаленных подключений от всех

    host all all 0.0.0.0/0 md5   # Accept from anywhere
    BASH
  • прием удаленных подключений от разрешенных подсетей

    host all all 10.10.10.0/24 md5    # Accept from trusted subnet
    BASH

После изменения перезапустите службу postgresql.

sudo systemctl restart postgresql
BASH

Проверьте адрес прослушивания.

netstat  -tunelp | grep 5432
BASH

tcp 0  0 0.0.0.0:5432   0.0.0.0:*     LISTEN   123    4698674  -  tcp6  0   0 :::5432    :::*    LISTEN   123     4698675    -

Полученная информация об адресе прослушивания говорит, что все настройки выполнены верно.