Як встановити PostgreSQL 12 на Ubuntu 24.04|22.04|20.04

Як встановити PostgreSQL 12 на Ubuntu 24.04|22.04|20.04

 

Цей посібник проведе вас через кроки, які використовуються для встановлення PostgreSQL 12 у системі Ubuntu Linux. PostgreSQL є однією з найбільш широко поширених об’єктно-реляційних систем управління базами даних, заснованих на POSTGRES 4.2. PostgreSQL 12 було випущено для загального використання, придатно для продакшну та всіх варіантів використання розробки.

Якщо ви хочете побачити всі нові функції та покращення в PostgreSQL 12, відвідайте сторінку приміток до випуску PostgreSQL 12, щоб ознайомитися з основними вдосконаленнями PostgreSQL 12. Не чекаючи, давайте починати встановлення PostgreSQL 12 на систему Ubuntu Linux.

Крок 1: Оновіть систему

Рекомендується оновити ваші поточні системні пакети, якщо це новий екземпляр сервера.

sudo apt update && sudo apt -y install vim bash-completion wget

Після оновлення необхідне перезавантаження.

sudo apt -y upgrade
[ -f /var/run/reboot-required ] && sudo reboot -f

Крок 2: Додайте репозиторій PostgreSQL 12

Нам потрібно імпортувати ключ GPG і додати репозиторій PostgreSQL 12 на нашу машину Ubuntu. Для цього виконайте наступні команди.

curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg

Після імпорту ключа GPG, додайте вміст репозиторію до вашої системи Ubuntu:

echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee  /etc/apt/sources.list.d/pgdg.list

Доданий репозиторій містить багато різних пакетів, включаючи сторонні додатки. До них відносяться:

  • postgresql-client
  • postgresql
  • libpq-dev
  • postgresql-server-dev
  • pgadmin packages

Крок 3: Встановіть PostgreSQL 12 на Ubuntu

Тепер репозиторій успішно додано, оновіть список пакетів і встановіть серверні та клієнтські пакети PostgreSQL 12 на вашу систему Ubuntu Linux.

sudo apt update
sudo apt install postgresql-12 postgresql-client-12

У разі успішної інсталяції буде надруковано повідомлення, схоже на повідомлення, опубліковане на наступному знімку екрана.

Служба PostgreSQL запускається і налаштовується на те, щоб вона з’являлася після кожного перезавантаження системи.

$ systemctl status postgresql.service
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Thu 2023-11-23 13:05:28 UTC; 23s ago
   Main PID: 3604 (code=exited, status=0/SUCCESS)
        CPU: 2ms

Nov 23 13:05:28 jammy systemd[1]: Starting PostgreSQL RDBMS...
Nov 23 13:05:28 jammy systemd[1]: Finished PostgreSQL RDBMS.

$ systemctl status postgresql@12-main.service
 postgresql@12-main.service - PostgreSQL Cluster 12-main
     Loaded: loaded (/lib/systemd/system/postgresql@12-main.service; enabled-runtime; vendor preset: enabled)
     Active: active (running) since Thu 2023-11-23 13:05:34 UTC; 36s ago
    Process: 4652 ExecStart=/usr/bin/pg_ctlcluster --skip-systemctl-redirect 12-main start (code=exited, status=0/SUCCESS)
   Main PID: 4657 (postgres)
      Tasks: 7 (limit: 4524)
     Memory: 18.1M
        CPU: 357ms
     CGroup: /system.slice/system-postgresql.slice/postgresql@12-main.service
             ├─4657 /usr/lib/postgresql/12/bin/postgres -D /var/lib/postgresql/12/main -c config_file=/etc/postgresql/12/main/postgresql.conf
             ├─4659 "postgres: 12/main: checkpointer   " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">
             ├─4660 "postgres: 12/main: background writer   " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" >
             ├─4661 "postgres: 12/main: walwriter   " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">
             ├─4662 "postgres: 12/main: autovacuum launcher   " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">
             ├─4663 "postgres: 12/main: stats collector   " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">
             └─4664 "postgres: 12/main: logical replication launcher   " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">

Nov 23 13:05:32 jammy systemd[1]: Starting PostgreSQL Cluster 12-main...
Nov 23 13:05:34 jammy systemd[1]: Started PostgreSQL Cluster 12-main.

$ systemctl is-enabled postgresql
enabled

Крок 4: Перевірте з’єднання PostgreSQL

Під час інсталяції автоматично створюється користувач postgres. Цей користувач має повний доступ суперадміністратора до всього вашого екземпляра PostgreSQL. Перед тим, як ви перейдете на цей обліковий запис, ваш зареєстрований користувач системи повинен мати привілеї sudo.

sudo su - postgres

Давайте скинемо цей пароль користувача до надійного пароля, який ми можемо запам’ятати.

psql -c "alter user postgres with password 'StrongAdminPassw0rd'"

Запустіть запит PostgreSQL за допомогою команди:

$ psql

Отримайте детальну інформацію про підключення, як показано нижче.

$ psql
psql (12.17 (Ubuntu 12.17-1.pgdg22.04+1))
Type "help" for help.

postgres=# \conninfo
You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".

Давайте створимо тестову базу даних і користувача, щоб подивитися, чи вона працює.

postgres=# CREATE DATABASE mytestdb;
CREATE DATABASE
postgres=# CREATE USER mytestuser WITH ENCRYPTED PASSWORD 'MyStr0ngP@SS';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE mytestdb to mytestuser;
GRANT

Список створених баз даних:

postgres=# \l
                               List of databases
   Name    |  Owner   | Encoding | Collate |  Ctype  |    Access privileges    
-----------+----------+----------+---------+---------+-------------------------
 mytestdb  | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =Tc/postgres           +
           |          |          |         |         | postgres=CTc/postgres  +
           |          |          |         |         | mytestuser=CTc/postgres
 postgres  | postgres | UTF8     | C.UTF-8 | C.UTF-8 | 
 template0 | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres            +
           |          |          |         |         | postgres=CTc/postgres
 template1 | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres            +
           |          |          |         |         | postgres=CTc/postgres
(4 rows)

Підключення до бази даних:

postgres-# \c mytestdb
You are now connected to database "mytestdb" as user "postgres".

Інші встановлені утиліти PostgreSQL, такі як createuser та createdb, можуть бути використані для створення бази даних та користувачів.

postgres@ubuntu:~$ createuser myuser --password
Password:
postgres@ubuntu:~$ createdb mydb -O myuser
postgres@ubuntu:~$ psql -l 

Ми можемо створити та підключитися до бази даних на сервері PostgreSQL.

Крок 5: Налаштуйте віддалене підключення (необов’язково)

Встановлення PostgreSQL 12 на Ubuntu приймає підключення лише від localhost. В ідеальних виробничих середовищах у вас буде центральний сервер баз даних і віддалені клієнти, що підключаються до нього, але, звичайно, в межах приватної мережі (LAN).

Щоб увімкнути віддалені підключення, відредагуйте файл конфігурації PostgreSQL:

sudo nano /etc/postgresql/12/main/postgresql.conf 

Розкоментуйте рядок 59 і змініть адресу Listen address, щоб приймати з’єднання у ваших мережах.

# Listen on all interfaces
listen_addresses = '*'

# Listen on specified private IP address
listen_addresses = '192.168.10.11'

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

sudo systemctl restart postgresql

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

$ sudo netstat  -tunelp | grep 5432
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      111        112837     11143/postgres      
tcp6       0      0 :::5432                 :::*                    LISTEN      111        112838     11143/postgres      

Насолоджуйтесь використанням PostgreSQL 12 у системі Linux Ubuntu 24.04|22.04|20.04

Прокрутка до верху