Как установить PostgreSQL 11 на Debian 10 (Buster)

Как установить PostgreSQL 11 на Debian 10 (Buster)

 

Это руководство проведет вас через шаги, необходимые для установки PostgreSQL 11 на Debian 10 (Buster). PostgreSQL — это мощный, расширяемый сервер баз данных, написанный на C. Это самая совершенная в мире система реляционных баз данных с более чем 30-летним активным развитием, которая заслужила хорошую репутацию благодаря надежности, надежности функций и производительности.

Первый выпуск PostgreSQL 11 был 2018-10-18, и вы можете проверить более подробную информацию на странице релиза . Выполните несколько шагов ниже, чтобы установить PostgreSQL 11 на Debian 10 (Buster).

Шаг 1: Добавить репозиторий PostgreSQL

Начните с проверки того, что все обновлено в вашей системе Debian 10.

sudo apt update
sudo apt -y upgrade

Затем импортируйте ключ подписи репозитория:

sudo apt install -y vim wget
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

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

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

Шаг 2: Установите PostgreSQL 11 на Debian 10 (Buster)

Теперь установите PostgreSQL 11 на Debian 10 Buster, выполнив команду ниже.

sudo apt update
sudo apt -y install postgresql-11

Служба обычно запускается после установки.

$ systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Fri 2019-03-29 13:15:54 UTC; 3min 37s ago
Main PID: 1360 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 1148)
Memory: 0B
CGroup: /system.slice/postgresql.service

Нам нужно установить пароль администратора PostgreSQL:

$ sudo su - postgres 
[email protected]:~$ psql -c "alter user postgres with password 'StrongDBPassword'" 
ALTER ROLE

Шаг 3: Включить удаленный доступ (необязательно)

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

$ 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 <->

Отредактируйте файл конфигурации PostgreSQL 11, если вы хотите изменить адрес прослушивания:

sudo vim /etc/postgresql/11/main/postgresql.conf

Добавьте строку ниже в разделе CONNECTIONS AND AUTHENTICATION.

listen_addresses = '*' # Don't do this if your server is on public network

Вы также можете указать IP-адрес сервера

listen_addresses = '10.10.0.2' # Recommended for LAN connections to DB Server

Перезапустите  postgresql после внесения изменений

sudo systemctl restart postgresql

Подтверждение

$ ss -tunelp | grep 5432
tcp     LISTEN   0        128              0.0.0.0:5432          0.0.0.0:*       uid:108 ino:74999 sk:a <->                                                     
tcp     LISTEN   0        128                 [::]:5432             [::]:*       uid:108 ino:75000 sk:b v6only:1 <->                                            

Если у вас есть активный брандмауэр UFW, разрешите порт 5432 для сетевых подключений.

sudo ufw allow 5432/tcp

Шаг 4. Проверка установки PostgreSQL

Добавьте тестовую базу данных пользователя:

$ sudo su - postgres
[email protected]:~$ createuser test_user1

Добавьте тестовую базу данных и предоставьте право собственности на test_user1:

[email protected]:~$ createdb test_db -O test_user1

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

[email protected]:~$ psql 
psql (11.2 (Debian 11.2-2))
Type "help" for help.
postgres=# alter user test_user1 with password 'DBUserPassword';
ALTER ROLE

Войдите в  базу  данных test_db :

[email protected]:~$ psql -l  | grep test_db
test_db   | test_user1 | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 

[email protected]:~$ psql test_db
psql (11.2 (Debian 11.2-2))
Type "help" for help.
test_db=#

Создайте таблицу и добавьте несколько фиктивных данных:

test_db=# create table test_table ( id int,first_name text, last_name text ); 
CREATE TABLE
test_db=# insert into test_table (id,first_name,last_name) values (1,'John','Doe'); 
INSERT 0 1

Показать данные таблицы:

test_db=# select * from test_table;
id | first_name | last_name 
----+------------+-----------
1 | John       | Doe
(1 row)
test_db=#

Давайте отбросим нашу тестовую базу данных, чтобы сохранить чистую установку.

[email protected]:~$ dropdb test_db

Это все. Вы успешно установили PostgreSQL 11 в Debian 10 (Buster). посетите страницу  официальной документации PostgreSQL для дальнейшего чтения.