=====В этом руководстве мы собираемся установить 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:/$