Оглавление:
Карта сайта:
Оглавление:
Карта сайта:
Postgresql — это система объектно-реляционных баз данных с открытым исходным кодом, активно разрабатываемая более 30 лет и заслужившая прочную репутацию за надежность, надежность функций и производительность. Postgres — это бесплатная система управления реляционными базами данных с открытым исходным кодом, в которой особое внимание уделяется расширяемости и совместимости с SQL.
Первоначально он назывался POSTGRES, ссылаясь на то, что он был преемником базы данных Ingres, разработанной в Калифорнийском университете в Беркли.
PostgreSQL используется в качестве основного хранилища данных или хранилища данных для многих веб-приложений, мобильных, геопространственных и аналитических приложений. PostgreSQL может хранить структурированные и неструктурированные данные в одном продукте.
Давайте обновим локальный индекс пакетов вашего сервера с помощью этой команды:
root@5new:/$ sudo apt update
Затем мы обновляем пакеты в нашей системе следующим образом:
root@5new:/$ sudo apt -y upgrade
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:/$
После установки СУБД откройте терминал и переключитесь на пользователя 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:/$