Написать в техподдержку Позвонить нам
Админпанель Выход

Содержание статьи:

    Установка и настройка Postgres Pro на Ubuntu

    В данной статье рассмотрим, как установить standalone Postgres Pro, создать пользователя базы данных, настроить права и сетевой доступ.

    Конфигурация оборудования

    Сервер Ubuntu 18.04 LTS x86_64.

    Установка Standalone Postgres Pro

    1. Авторизуйтесь на сервере Ubuntu 18.04.
    2. Обновите список репозиториев:

    Примечание.

     Для получения адресов репозиториев Postgres Pro зарегистрируйтесь на сайте.

    1. Установите дополнительные пакеты:
    ubuntu@ubuntu-standard-2-4-40gb:~$ sudo apt-get install -y wget gnupg2 || sudo apt-get install -y gnupg










    1. Установите Postgres Pro:












    • Скачайте ключ репозитория Postgres Pro:



    ubuntu@ubuntu-standard-2-4-40gb:~$ wget -O - http://repo.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO | sudo apt-key add -










    • Добавьте в список репозиториев репозиторий Postgres Pro:



    ubuntu@ubuntu-standard-2-4-40gb:~$ sudo apt-add-repository "deb http://repo.postgrespro.ru//pgpro-archive/pgpro-12.1.1/ubuntu bionic main"
    Get:1 http://repo.postgrespro.ru//pgpro-archive/pgpro-12.1.1/ubuntu bionic InRelease [2826 B]
    Hit:2 http://security.ubuntu.com/ubuntu bionic-security InRelease
    Get:3 http://repo.postgrespro.ru//pgpro-archive/pgpro-12.1.1/ubuntu bionic/main amd64 Packages [9590 B]
    Hit:4 http://MS1.clouds.archive.ubuntu.com/ubuntu bionic InRelease
    Hit:5 http://MS1.clouds.archive.ubuntu.com/ubuntu bionic-updates InRelease
    Get:6 http://MS1.clouds.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
    Fetched 87.0 kB in 1s (126 kB/s)
    Reading package lists... Done










    • Установите сервер Postgres Pro:



    ubuntu@ubuntu-standard-2-4-40gb:~$ sudo apt-get install -y postgrespro-std-12-server










    • Выполните инициализацию базы данных:



    ubuntu@ubuntu-standard-2-4-40gb:~$ sudo /opt/pgpro/std-12/bin/pg-setup initdb
    Initalizing database...
    OK










    • Добавьте сервер в список приложений, загружаемых автоматически:



    ubuntu@ubuntu-standard-2-4-40gb:~$ sudo /opt/pgpro/std-12/bin/pg-setup service enable
    Synchronizing state of postgrespro-std-12.service with SysV service script with /lib/systemd/systemd-sysv-install.
    Executing: /lib/systemd/systemd-sysv-install enable postgrespro-std-12










    • Запустите сервер:



    ubuntu@ubuntu-standard-2-4-40gb:~$ sudo systemctl start postgrespro-std-12.service










    • После установки убедитесь, что сервер запущен:



    ubuntu@ubuntu-standard-2-4-40gb:~$ ps ax | grep postgres
    20151 ? Ss 0:00 /opt/pgpro/std-12/bin/postgres -D /var/lib/pgpro/std-12/data
    20175 ? Ss 0:00 postgres: logger
    20180 ? Ss 0:00 postgres: checkpointer
    20181 ? Ss 0:00 postgres: background writer
    20182 ? Ss 0:00 postgres: walwriter
    20183 ? Ss 0:00 postgres: autovacuum launcher
    20184 ? Ss 0:00 postgres: stats collector
    20185 ? Ss 0:00 postgres: logical replication launcher
    20189 pts/0    S+     0:00 grep --color=auto postgres
    













    • Обновите пути для использования Postgres Pro:


    ubuntu@ubuntu-standard-2-4-40gb:~$ sudo /opt/pgpro/std-12/bin/pg-wrapper links update










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








    ubuntu@ubuntu-standard-2-4-40gb:~$ sudo su - postgres
    postgres@ubuntu-standard-2-4-40gb:~$ psql
    psql (12.1)
    Type "help" for help.
    
    postgres=# \l
    List of databases
    Name | Owner | Encoding | Collate | Ctype | Access privileges
    -----------+----------+----------+-------------+---------+-----------------------
    postgres | postgres | UTF8 | C.UTF-8@icu | C.UTF-8 |
    template0 | postgres | UTF8 | C.UTF-8@icu | C.UTF-8 | =c/postgres +
    | | | | | postgres=CTc/postgres
    template1 | postgres | UTF8 | C.UTF-8@icu | C.UTF-8 | =c/postgres +
    | | | | | postgres=CTc/postgres
    (3 rows)
    
    postgres=# \q




    Установка завершена.








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










    1. Создайте базу данных mybase:



    ubuntu@ubuntu-standard-2-4-40gb:~$ sudo su - postgres
    postgres@ubuntu-standard-2-4-40gb:~$ psql
    psql (12.1)
    Type "help" for help.
    
    postgres=# create database mybase;
    CREATE DATABASE










    1. Создайте пользователя myuser c паролем mypass:



    postgres=# create user myuser with encrypted password 'mypass';
    CREATE ROLE













    1. Дайте пользователю myuser права для доступа к базе данных mybase:





    postgres=# grant all privileges on database mybase to myuser;
    GRANT













    1. Проверьте подключение для пользователя ОС Ubuntu:





    ubuntu@ubuntu-standard-2-4-40gb:~$ psql -hlocalhost -Umyuser -W mybase
    Password:
    psql (12.1)
    Type "help" for help.
    
    mybase=>







    Настройка сетевого доступа
















    По умолчанию Postgres Pro слушает только 127.0.0.1. Чтобы настроить сетевой доступ к серверу, отредактируйте файл /var/lib/pgpro/std-12/data/postgresql.conf. В этом файле найдите строку listen_addresses= и добавьте следующее*:




    #------------------------------------------------------------------------------
    # CONNECTIONS AND AUTHENTICATION
    #------------------------------------------------------------------------------
    
    # - Connection Settings -
    
    #listen_addresses = 'localhost' # what IP address(es) to listen on;
    # comma-separated list of addresses;
    # defaults to 'localhost'; use '*' for all
    listen_addresses = '*'







    Чтобы дать пользователю myuser сетевой доступ к базе данных mybase с любого адреса  с авторизацией по md5-паролю, в конец файла /var/lib/pgpro/std-12/data/pg_hba.conf добавьте строку:

    # host       DATABASE  USER  ADDRESS  METHOD  [OPTIONS]
    host    mybase        myuser        0.0.0.0/0        md5







    Чтобы не прописывать в конфигурационный файл правила для каждого пользователя и базы данных,  разрешите авторизацию всех пользователей для доступа к любой базе данных, для доступа к которым у пользователя есть права, по md5-паролю. Для этого вместо предыдущей строки добавьте строку:

    # host       DATABASE  USER  ADDRESS  METHOD  [OPTIONS]
    host    all        all        0.0.0.0/0        md5







    Перезапустите Postgres Pro:

    ubuntu@ubuntu-standard-2-4-40gb:~$ sudo systemctl restart postgrespro-std-12.service







    Убедитесь, что Postgres Pro слушает сеть:

    ubuntu@ubuntu-standard-2-4-40gb:~$ sudo netstat -tulpn | grep 5432
    tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 18214/postgres
    tcp6       0      0 :::5432                 :::*                    LISTEN      18214/postgres







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

    root@ash:~# psql -h <POSTGRESQL_SERVER_IP> -Umyuser -W mybase
    Password:
    psql (11.5 (Debian 11.5-1+deb10u1), server 12.1)
    WARNING: psql major version 11, server major version 12.
             Some psql features might not work.
    Type "help" for help.
    
    
    mybase=>
















    Обратная связь







    Возникли проблемы или остались вопросы? Напишите нам, мы будем рады вам помочь.




    Полезна ли была эта статья?