Информация | ||
---|---|---|
| ||
|
Аннотация
В данной статье представлена инструкция по установке СУБД PostgreSQL на Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 7). (далее - ОС). В состав ОС включена СУБД PostgreSQL версии 11.
Установка пакетов
- Опционально: подключить расширенный репозиторий пакетов (XR): Репозитории Astra Linux Special Edition 1.7: особенности подключения и использования;
Обновить список пакетов:
Command sudo apt update Опционально: установить актуальное оперативное обновление:
Command sudo apt dist-upgrade Проверить доступные версии:
Предупреждение Установить пакет postgresql-11:
Command sudo apt install postgresql-11 - Убедиться, что служба postgresql запустилась:
Command Title systemctl 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.
●
postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Fri
2021-
09-
10 12:
48:
20 MSK; 1min 26s ago
Main PID:
4338 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit:
4637)
Memory: 0B
CGroup: /system.slice/postgresql.service
We need to set PostgreSQL admin user Password:$ sudo su - postgres
postgres@deb10:~$
Первичная настройка СУБД
Выполнить вход в сессию служебного пользователя postgres:
Command sudo su - postgres Работая в сессии служебного пользователя postgres:
Установить пароль администратора СУБД:
Command psql -c "alter user postgres with password '
<указать_пароль>'"
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:
Вместо текста <пароль> указать устанавливаемый пароль;
Пароль заключается в одинарные кавычки;
Вся команда заключается в двойные кавычки.
Завершить работу в сессии служебного пользователя postgres:
Command exit
- Наcтроить удаленный доступ к СУБД, для чего в конфигурационном файле /etc/postgresql/11/main/postgresql.conf
Add below line under CONNECTIONS AND AUTHENTICATION section.
- проверить и установить параметр listen_addresses:
Значение по умолчанию - служба postgresql подключена ко всем сетевым интерфейсам:
Блок кода listen_addresses = '*
You can also specify server IP Address
'
- Допустимые значения:
Служба postgresql подключена ко всем сетевым интерфейсам IPv4:
Блок кода listen_addresses = '0.0.0.0'
Служба postgresql подключена ко всем сетевым интерфейсам IPv6:
Блок кода listen_addresses = '::'
Разделенный запятыми список IP-адресов сетевых интерфейсов, к которым будет подключена служба:
Блок кода listen_addresses = '
192.168.1.2,10.0.
Restart postgresql after making a change
sudo systemctl restart postgresql
Confirm$
02'
- Допускается использовать пустой список, тогда подключение будет возможно только через сокеты UNIX (подробнее см. документацию СУБД).
Если в конфигурацию были внесены изменения, то для того чтобы сделанные изменения вступили в силу перезапустить службу postgresql:
Command sudo systemctl restart postgresql - Проверить, к каким сетевым портам и интерфейсам подключена служба postgresql, можно командой:
Command Title ss -tunelp | grep
uid:`id -u postgres` tcp LISTEN 0
1024
0.0.0.0:5432
0.0.0.0:*
uid:
107 ino:
32947 sk:
5 <->
tcp LISTEN 0
1024 [::]:5432 [::]:*
uid:
107 ino:
32948 sk:
9 v6only:1 <->
If you have an active UFW firewall, allow port 5432 for network connections.
Приведен вывод команды для службы, настроенной по умолчанию (параметр listen_addresses = '*', служба работает с портом 5432 на всех доступных сетевых интерфейсах IPv4 и IPv6);
- Настроить активные сетевые экраны, разрешив доступ к сетевому порту postgresql (по умолчанию - порт 5432):
Для сетевого экрана ufw:
Command sudo ufw allow 5432/tcp
Add a test database user:$
Для сетевого экрана firewalld:
Command sudo firewall-cmd --add-service=postgresql --zone=internal --permanent
Первичное тестирование работоспособности СУБД
Выполнить вход в сессию служебного пользователя postgres:
Command sudo su - postgres
Работая в сессии служебного пользователя postgres:
Добавить тестового пользователя СУБД test_user1:
Command createuser test_user1
Добавить тестовую базу данных test_db, указав в качестве её владельца тестового пользователя:
Command
createdb test_db -O test_user1
Установить пароль тестового пользователя:
Command psql
Type "help" for help.
postgres=#
-c "alter user test_user1 with password '
postgres@deb10:~$ psql -l | grep test_db
test_db | test_user1 | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
<указать_пароль>'
ALTER ROLE
Login to test_db database:
" Подключиться к созданной тестовой базе данных и войти в сессию СУБД:
Command Title
psql test_db psql (11.
12 (Debian 11.
12-
astra.ce5))
Введите "help"
, чтобы получить справку.
test_db=#
Create a table and add some dummy data:test_db=#
Дальнейшие команды выполняются в сессии СУБД:Создать таблицу и добавить в нее данные:
Command Title create table test_table ( id int,first_name text, last_name text );
CREATE TABLE
test_db=#
Добавить в таблицу данные:
Command Title insert into test_table (id,first_name,last_name) values (
2,'
Иван','
Иванов');
INSERT 0 1
Вывести табличные данные:
Command Title
select * from test_table;
id | first_name | last_
name
----+------------+-----------
1 |
Иван |
Иванов
(1
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).
строка)
Выйти из сессии СУБД:
Command exit
Удалить тестовую базу данных:
Command dropdb test_db