Как установить PostgreSQL 13 в Ubuntu 20.04 | 18.04

Как установить PostgreSQL 13 в Ubuntu 20.04 | 18.04

 

PostgreSQL — очень популярная система управления объектно-реляционными базами данных (СУБД) с открытым исходным кодом, созданная для гарантии надежности, эффективности и целостности данных. Разработка ведется уже более 30 лет, и проект заслужил прочную репутацию благодаря надежности, функциональности и производительности. В этом руководстве мы объясним, как вы можете установить и настроить сервер базы данных PostgreSQL 13 на сервере Linux Ubuntu 20.04 | 18.04.

PostgreSQL используется тысячами компаний для выполнения платежных транзакций, огромного трафика веб-сайтов, платформ электронной коммерции и т. Д. Он также позволяет добавлять пользовательские функции, разработанные с использованием таких языков программирования, как Java, Python, C / C ++ и многих других.

На момент обновления этой статьи последний выпуск PostgreSQL — 13, который предназначен для использования для выполнения рабочих нагрузок в производственных средах. Вы можете найти информацию обо всех функциях и изменениях, обнаруженных в PostgreSQL 13, в примечаниях к  выпуску .

Шаг 1. Обновите систему Ubuntu

Мы всегда работаем над последним выпуском ОС, чтобы убедиться в отсутствии старых проблем с зависимостями. Войдите на свой сервер Ubuntu и выполните следующие команды, чтобы обновить все установленные пакеты.

sudo apt update
sudo apt -y upgrade

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

sudo reboot

Шаг 2. Добавьте репозиторий PostgreSQL 13 в Ubuntu 20.04 | 18.04

Теперь, когда мы обновили и перезагрузили нашу систему, давайте добавим репозиторий APT, необходимый для извлечения пакетов из репозитория PostgreSQL.

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

После импорта ключа GPG добавьте содержимое репозитория в вашу систему Ubuntu 20.04 | 18.04:

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 13 в Ubuntu 20.04 / 18.04 Linux

После добавления репозитория мы можем установить пакеты PostgreSQL 13 на наш Linux-сервер Ubuntu 20.04 | 18.04. Но сначала обновите индекс пакета, чтобы версия была доступна на уровне ОС.

sudo apt update

Выполните приведенные ниже команды, чтобы установить PostgreSQL 13 в Ubuntu 20.04 | 18.04 Система Linux.

sudo apt install postgresql-13 postgresql-client-13

Служба PostgreSQL запускается и запускается после каждой перезагрузки системы.

$ systemctl status postgresql.service 
 ● postgresql.service - PostgreSQL RDBMS
    Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
    Active: active (exited) since Sun 2020-10-07 10:23:46 UTC; 6min ago
  Main PID: 8159 (code=exited, status=0/SUCCESS)
     Tasks: 0 (limit: 2362)
    CGroup: /system.slice/postgresql.service

$ systemctl status postgresql@13-main.service 

$ systemctl is-enabled postgresql
enabled

Шаг 4: Проверьте соединение с PostgreSQL

Во время установки автоматически создается пользователь postgres. Этот пользователь имеет полный   доступ суперадминистратора ко всему вашему экземпляру PostgreSQL. Прежде чем переключиться на эту учетную запись, ваш системный пользователь, вошедший в систему, должен иметь права sudo.

sudo su - postgres

Давайте сбросим этот пароль пользователя на надежный пароль, который мы можем запомнить.

psql -c "alter user postgres with password 'StrongAdminP@ssw0rd'"

Запустите командную строку PostgreSQL с помощью команды:

$ psql

Получите подробную информацию о подключении, как показано ниже.

$ psql
psql (13.0 (Ubuntu 13.0-1.pgdg18.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 13 на Ubuntu принимает соединения только от localhost. В идеальных производственных средах у вас будет центральный сервер базы данных и подключенные к нему удаленные клиенты — но, конечно, в  частной сети  (LAN).

Чтобы включить удаленные подключения, отредактируйте файл конфигурации PostgreSQL:

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

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

# Listen on all interfaces
listen_addresses = '*'

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

Также настройте PostgreSQL на прием удаленных подключений от разрешенных хостов.

$ sudo nano /etc/postgresql/13/main/pg_hba.conf

# Accept from anywhere
host all all 0.0.0.0/0 md5

# Accept from trusted subnet
host all all 10.10.10.0/24 md5

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

sudo systemctl restart postgresql

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

# 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