Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.


Информация
titleДанная статья применима к:
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 7)


Аннотация

В данной статье представлена инструкция по установке СУБД PostgreSQL на Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 7). (далее - ОС). В состав ОС включена СУБД PostgreSQL версии 11.

Установка пакетов

  1. Опционально: подключить расширенный репозиторий пакетов (XR): Репозитории Astra Linux Special Edition 1.7: особенности подключения и использования;
  2. Обновить список пакетов:

    Command
    sudo apt update


  3. Опционально: установить актуальное оперативное обновление:

    Command
    sudo apt dist-upgrade


  4. Проверить доступные версии:

    Предупреждение



  5. Установить пакет postgresql-11:

    Command
    sudo apt install postgresql-11



  6. Убедиться, что служба postgresql запустилась:


    Command
    Titlesystemctl status postgresql

This guide will walk you through the steps required to Install PostgreSQL 11 on Debian 10 (Buster). PostgreSQL is a powerful, highly-extensible database server written in C. It is the World’s most advanced relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.

The first release of PostgreSQL 11 was on 2018-10-18 and you can check more details on the release page. Follow the few steps below to install PostgreSQL 11 on Debian 10 (Buster).
Step 1: Add PostgreSQL Repository
Start by ensuring everything is updated on your Debian 10 system.

sudo apt update
sudo apt -y upgrade
Then Import the repository signing key:
sudo apt install -y vim wget
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Add the repository:

RELEASE=$(lsb_release -cs)
echo "deb http://apt.postgresql.org/pub/repos/apt/ ${RELEASE}"-pgdg main | sudo tee  /etc/apt/sources.list.d/pgdg.list
Step 2: Install PostgreSQL 11 on Debian 10 (Buster)
Now install PostgreSQL 11 on Debian 10 Buster by running the command below.
sudo apt update
sudo apt -y install postgresql-11
The service is usually started after installation.

$ systemctl status postgresql
 ●
  1. postgresql.service - PostgreSQL RDBMS

   
  1.    Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)

   
  1.    Active: active (exited) since Fri

2019
  1. 2021-

03
  1. 09-

29 13
  1. 10 12:

15
  1. 48:

54 UTC; 3min 37s
  1. 20 MSK; 1min 26s ago

 
  1. Main PID:

1360
  1. 4338 (code=exited, status=0/SUCCESS)

     Tasks
  1.    Tasks: 0 (limit:

1148
  1. 4637)

   
  1.    Memory: 0B

   
  1.    CGroup: /system.slice/postgresql.service


We need to set PostgreSQL admin user Password:$ sudo su - postgres 
postgres@deb10:~$

Первичная настройка СУБД

  1. Выполнить вход в сессию служебного пользователя postgres:

    Command
    sudo su - postgres

    Работая в сессии служебного пользователя postgres:

    1. Установить пароль администратора СУБД:

      Command
      psql -c "alter user postgres with password '
StrongDBPassword
    1. <указать_пароль>'"
 
ALTER ROLE
Step 3: Enable remote access (Optional)
By default, access to PostgreSQL database server is only from localhost.

$ ss -tunelp | grep 5432
tcp   LISTEN  0  128  127.0.0.1:5432         0.0.0.0:*      users:(("postgres",pid=15785,fd=3)) uid:111 ino:42331 sk:6 <->
Edit PostgreSQL 11 configuration file if you want to change listening address:

sudo vim

      • Вместо текста <пароль> указать устанавливаемый пароль;

      • Пароль заключается в одинарные кавычки;

      • Вся команда заключается в двойные кавычки.

    1. Завершить работу в сессии служебного пользователя postgres:

      Command
      exit


  1. Наcтроить удаленный доступ к СУБД, для чего в конфигурационном файле /etc/postgresql/11/main/postgresql.conf

Add below line under CONNECTIONS AND AUTHENTICATION section.
  1. проверить и установить параметр listen_addresses:
    1. Значение по умолчанию - служба postgresql подключена ко всем сетевым интерфейсам:

      Блок кода
      listen_addresses = '*
' # Don't do this if your server is on public network
You can also specify server IP Address
    1. '


    2. Допустимые значения:
      1. Служба postgresql подключена ко всем сетевым интерфейсам IPv4:

        Блок кода
        listen_addresses = '0.0.0.0'


      2. Служба postgresql подключена ко всем сетевым интерфейсам IPv6:

        Блок кода
        listen_addresses = '::'


      3. Разделенный запятыми список IP-адресов сетевых интерфейсов, к которым будет подключена служба:

        Блок кода
        listen_addresses = '
10.
      1. 192.168.1.2,10.0.
2' # Recommended for LAN connections to DB Server
Restart postgresql after making a change
sudo systemctl restart postgresql
Confirm$
      1. 02'


      2. Допускается использовать пустой список, тогда подключение будет возможно только через сокеты UNIX (подробнее см. документацию СУБД).
  1. Если в конфигурацию были внесены изменения, то для того чтобы сделанные изменения вступили в силу перезапустить службу postgresql:

    Command
    sudo systemctl restart postgresql


  2. Проверить, к каким сетевым портам и интерфейсам подключена служба postgresql, можно командой:


    Command
    Titless -tunelp | grep
5432
  1. uid:`id -u postgres`

    tcp     LISTEN   0      

 128
  1.  1024            

 0
  1. 0.0.0.0:5432        

 0
  1.   0.0.0.0:*    

  uid
  1.  uid:

108
  1. 107 ino:

74999
  1. 32947 sk:

a
  1. 5 <->

                                                    

  1. tcp     LISTEN   0      

 128
  1.  1024                [::]:5432              [::]:*    

  uid
  1.  uid:

108
  1. 107 ino:

75000
  1. 32948 sk:

b
  1. 9 v6only:1 <->                        

                   
If you have an active UFW firewall, allow port 5432 for network connections.
  1. Приведен вывод команды для службы, настроенной по умолчанию (параметр listen_addresses = '*', служба работает с портом 5432 на всех доступных сетевых интерфейсах IPv4 и IPv6);

  2. Настроить активные сетевые экраны, разрешив доступ к сетевому порту postgresql (по умолчанию - порт 5432):
    1. Для сетевого экрана ufw:

      Command
      sudo ufw allow 5432/tcp
Step 4:  Test PostgreSQL Installation
Add a test database user:$

    1. Для сетевого экрана firewalld:

      Command
      sudo firewall-cmd --add-service=postgresql --zone=internal --permanent


Первичное тестирование работоспособности СУБД

  1. Выполнить вход в сессию служебного пользователя postgres:

    Command
    sudo su - postgres
postgres@deb10:~$ postgres@deb10:~$
  1. Работая в сессии служебного пользователя postgres:

    1. Добавить тестового пользователя СУБД test_user1:

      Command
      createuser test_user1
Add the test database and grant ownership to test_user1:

    1. Добавить тестовую базу данных test_db, указав в качестве её владельца тестового пользователя:

      Command
    1. createdb test_db -O test_user1
Set user password

    1. Установить пароль тестового пользователя:

postgres@deb10:~$ psql 
    1. Command
      psql
(11.2 (Debian 11.2-2))
Type "help" for help.
postgres=#
    1. -c "alter user test_user1 with password '
DBUserPassword

postgres@deb10:~$ psql -l  | grep test_db
test_db   | test_user1 | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 

postgres@deb10:~$
    1. <указать_пароль>'
;
ALTER ROLE
Login to test_db database:
    1. "


    2. Подключиться к созданной тестовой базе данных и войти в сессию СУБД:

      Command
      Title
    1. psql test_db
      psql (11.
2
    1. 12 (Debian 11.
2
    1. 12-
2
    1. astra.ce5))
Type
    1. Введите "help"
for help
    1. , чтобы получить справку.
      test_db=# 

Create a table and add some dummy data:test_db=#

    1. Дальнейшие команды выполняются в сессии СУБД:

      1. Создать таблицу и добавить в нее данные:

        Command
        Title create table test_table ( id int,first_name text, last_name text );
 
      1. CREATE TABLE

test_db=#

      1. Добавить в таблицу данные:

        Command
        Title insert into test_table (id,first_name,last_name) values (
1
      1. 2,'
John
      1. Иван','
Doe
      1. Иванов');
 test_db=#
      1. INSERT 0 1
Show table data:

      1. Вывести табличные данные:

        Command
        Title
      1. select * from test_table;
  id
      1.  id | first_name | last_
name 
      1. name
 
      1. ----+------------+-----------
         
 1
      1. 1 |
John
      1. Иван       |
Doe
      1. Иванов
 
      1. (1
row)
 test_db=# 
Let’s drop our test database to retain clean installation.postgres@deb10:~$ dropdb test_db
That’s all. You have successfully installed PostgreSQL 11 on Debian 10 (Buster).
      1. строка)


      2. Выйти из сессии СУБД:

        Command
        exit


    1. Удалить тестовую базу данных:

      Command
      dropdb test_db