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

by itisgood

Это руководство проведет вас через шаги, необходимые для установки 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 
postgres@deb10:~$ 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
postgres@deb10:~$ createuser test_user1

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

postgres@deb10:~$ createdb test_db -O test_user1

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

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

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

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

postgres@deb10:~$ 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=#

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

postgres@deb10:~$ dropdb test_db

 

You may also like

Leave a Comment