Инструменты пользователя

Инструменты сайта


postgres:ustanovka

В этом руководстве мы собираемся установить Postgresql 14 в Ubuntu 20.04.

Postgresql — это система объектно-реляционных баз данных с открытым исходным кодом, активно разрабатываемая более 30 лет и заслужившая прочную репутацию за надежность, надежность функций и производительность. Postgres — это бесплатная система управления реляционными базами данных с открытым исходным кодом, в которой особое внимание уделяется расширяемости и совместимости с SQL.

Первоначально он назывался POSTGRES, ссылаясь на то, что он был преемником базы данных Ingres, разработанной в Калифорнийском университете в Беркли.

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

1. Убедитесь, что ваши системные пакеты обновлены

Давайте обновим локальный индекс пакетов вашего сервера с помощью этой команды:

root@5new:/$ sudo apt update

Затем мы обновляем пакеты в нашей системе следующим образом:

root@5new:/$ sudo apt -y upgrade

2. Installing Postgres 14

Postgres предоставляется в репозиториях Ubuntu по умолчанию. Чтобы проверить версию, используйте эту команду:

root@5new:/$ sudo apt-cache search postgresql | grep postgresql

Пакеты по умолчанию, предоставляемые репозиториями по умолчанию, — это postgres 12. Если вы заинтересованы в Postgres 12, вы можете установить его с помощью следующих команд. Пакет -contrib, добавляющий некоторые дополнительные утилиты и функции:

root@5new:/$ sudo apt install postgresql postgresql-contrib

Поскольку мы хотим установить Postgres 14, нам нужно будет добавить дополнительный репозиторий, который предоставляет пакеты

root@5new:/$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

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

root@5new:/$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

Теперь давайте обновим списки пакетов:

root@5new:/$ sudo apt -y update

Затем мы устанавливаем нужную версию postgres. Используйте postgresql-14 вместо postgresql:

root@5new:/$ sudo apt -y install postgresql-14

После успешной установки Postgres 14 будет запущен.

Используйте эту команду для проверки статуса службы:

root@5new:/$ sudo systemctl status postgresql
 ● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Thu 2021-10-14 09:32:22 UTC; 55s ago
Main PID: 204727 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 4710)
Memory: 0B
CGroup: /system.slice/postgresql.service
 
Oct 14 09:32:22 ip-172-26-11-229 systemd[1]: Starting PostgreSQL RDBMS...
Oct 14 09:32:22 ip-172-26-11-229 systemd[1]: Finished PostgreSQL RDBMS.

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

root@5new:/$ sudo -u postgres psql -c "SELECT version();"

Output:

version
----------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 14.0 (Ubuntu 14.0-1.pgdg20.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, 64-bi
(1 row)

Работа с кластером

Переключится на пользователя postgres

root@5new:/$ su postgres

Проверить рабочие кластеры

root@5new:/$ pg_lsclusters
Ver Cluster Port Status Owner    Data directory              Log file
14  main    5432 down   postgres /var/lib/postgresql/14/main /var/log/postgresql/postgresql-14-main.log
root@5new:/$

отключить ненужный

root@5new:/$ systemctl stop postgresql@12-main
 
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to stop 'postgresql@12-main.service'.
Authenticating as: root
Password:
==== AUTHENTICATION COMPLETE ===
 
root@5new:/$ pg_lsclusters
Ver Cluster Port Status Owner    Data directory              Log file
12  main    5432 down   postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
14  main    5433 online postgres /var/lib/postgresql/14/main /var/log/postgresql/postgresql-14-main.log
root@5new:/$

Настройка postgreSql в Ubuntu

После установки СУБД откройте терминал и переключитесь на пользователя postgres с помощью команды:

root@5new:/$ sudo -i -u postgres

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

Это очень похоже на учетные записи Unix, но программа не различает пользователей и групп, есть только роли. Сразу после установки PostgreSQL пытается связать свои роли с системными учетными записями, если для имени системной учетной записи существует роль, то пользователь может войти в консоль управления и выполнять позволенные ему действия. Таким образом, после переключения на пользователя postgres вы можете войти в консоль управления:

root@5new:/$  psql

И посмотреть информацию о соединении

postgres=#  \conninfo

Чтобы выйти наберите

postgres=# \q

Ошибки при установке

    Success. You can now start the database server using:
 
    /usr/lib/postgresql/10/bin/pg_ctl -D /var/lib/postgresql/10/main -l logfile start
 
    Ver Cluster Port Status Owner    Data directory              Log file
    10  main    5432 down   postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log

в этом случае нужно просто из сервисов стартануть postgres:

root@5new:/$ service postgresql start

Если не удается создать пользователя

Не работает команда:

root@5new:/$ sudo -i -u postgres

Вот как исправить, открываем файл

root@5new:/$ nano /etc/postgresql/10/main/pg_hba.conf

там находим строчку

    local   all   postgres   peer

изменим «peer» на «trust» перезапустим сервис postgresql,

root@5new:/$ sudo service postgresql restart

После чего можно зайти под пользователем postgres

root@5new:/$ psql -U postgres

Где расположе конфигурационный файл:

root@5new:/$  psql -U postgres -c 'SHOW config_file'

или, если вы вошли в систему как пользователь ubuntu:

root@5new:/$  sudo -u postgres psql -c 'SHOW config_file'

рабочие кластеры

    root@5new:/$ pg_lsclusters
    Ver Cluster Port Status Owner    Data directory              Log file
    14  main    5432 down   postgres /var/lib/postgresql/14/main /var/log/postgresql/postgresql-14-main.log
    root@5new:/$
postgres/ustanovka.txt · Последние изменения: 2023/01/12 12:18 (внешнее изменение)