Как установить PostgreSQL в Ubuntu, CentOS и Windows?

Опубликовано: 2021-06-08

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

Он восходит к 1986 году как часть проекта POSTGRES в Калифорнийском университете в Беркли, и на его базовой платформе ведется 30-летняя активная разработка. Его стабильная производительность на протяжении многих лет доказала его целостность, архитектуру и расширяемость для корпоративного использования. Он совместим с ACID и предлагает поддержку мощных надстроек, таких как популярный расширитель геопространственных баз данных PostGIS.

В этой статье мы рассмотрим установку PostgreSQL на распространенных платформах.

Итак, приступим.

Ubuntu

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

Чтобы использовать версию, поддерживаемую по умолчанию, предоставленную репозиторием Ubuntu, запустите:

 $ sudo apt-get update $ sudo apt-get -y install postgresql

Репозиторий PostgreSQL Apt поддерживает текущие LTS-версии Ubuntu, то есть 20.04 , 18.04 и 16.04 . Хотя он может не поддерживаться полностью, те же пакеты работают и с версиями, отличными от LTS, с использованием ближайшей LTS-версии.

Чтобы использовать репозиторий PostgreSQL apt , выполните следующие действия:

 $ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' $ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - $ sudo apt-get update $ sudo apt-get -y install postgresql

Чтобы установить определенную версию из репозитория PostgreSQL, вместо postgresql который относится к последней версии, укажите ее как postgresql-12 :

 $ sudo apt-get -y install postgresql-12

Репозиторий также содержит разные пакеты, в том числе сторонние надстройки. Например, общедоступные пакеты для PostgreSQL версии 12 включают:

postgresql-client-12 клиентские библиотеки и клиентские двоичные файлы
postgresql-12 главный сервер базы данных
postgresql-contrib-9.x дополнительные поставляемые модули (часть пакета postgresql-xx в версии 10 и новее)
libpq-dev библиотеки и заголовки для разработки внешнего интерфейса на языке C
postgresql-server-dev-12 библиотеки и заголовки для бэкэнд-разработки на языке C
pgadmin4 Графическая утилита администрирования pgAdmin 4

После завершения установки вы можете проверить статус службы БД, используя следующую команду:

 $ sudo systemctl status postgresql.service

Для Ubuntu после установки служба должна быть включена и работать следующим образом:

 $ sudo systemctl status postgresql.service ● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Sun 2021-06-06 16:06:45 UTC; 46s ago Main PID: 3364 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 1113) Memory: 0B CGroup: /system.slice/postgresql.service Jun 06 16:06:45 ubuntu20cloud systemd[1]: Starting PostgreSQL RDBMS... Jun 06 16:06:45 ubuntu20cloud systemd[1]: Finished PostgreSQL RDBMS. $

CentOS

Как и Ubuntu, репозитории RHEL / CentOS также содержат определенную версию PostgreSQL, которая поддерживается в течение всего жизненного цикла ОС. Вы можете установить то же самое, используя:

 $ sudo yum install -y postgresql-server

или вы можете использовать DNF, если используете CentOS 8.

 $ sudo dnf install -y postgresql-server

Выполните следующие команды после установки, чтобы инициализировать БД, включить службу PostgreSQL и запустить ее:

 $ sudo postgresql-setup initdb $ sudo systemctl enable postgresql.service $ sudo systemctl start postgresql.service

Или, чтобы использовать пакеты непосредственно из репозиториев yum PostgreSQL , мы должны добавить репозиторий как:

 $ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

А затем, чтобы установить конкретную версию PostgreSQL, например версию 13, которая является последней стабильной версией на момент написания этой статьи, используйте:

 $ sudo yum install -y postgresql13-server

Репозиторий yum также содержит дополнительные пакеты для PostgreSQL, некоторые из наиболее важных из которых перечислены ниже:

postgresql-client библиотеки и клиентские двоичные файлы
postgresql-сервер главный сервер базы данных
postgresql-contrib дополнительные поставляемые модули
postgresql-devel библиотеки и заголовки для разработки на языке C

Выполните следующие шаги после установки, чтобы инициализировать БД, включить службу PostgreSQL и запустить ее:

 $ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb $ sudo systemctl enable postgresql-13 $ sudo systemctl start postgresql-13

Вы можете проверить статус службы БД, используя следующую команду:

 $ sudo systemctl status postgresql.service ● postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2021-06-06 16:39:35 GMT; 1min 12s ago Process: 7011 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS) Process: 7005 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) CGroup: /system.slice/postgresql.service ├─7014 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432 ├─7015 postgres: logger process ├─7017 postgres: checkpointer process ├─7018 postgres: writer process ├─7019 postgres: wal writer process ├─7020 postgres: autovacuum launcher process └─7021 postgres: stats collector process Jun 06 16:39:34 centos7cloud systemd[1]: Starting PostgreSQL database server... Jun 06 16:39:35 centos7cloud systemd[1]: Started PostgreSQL database server. $

Окна

Установщики для 32- и 64-разрядных версий Windows доступны на официальном сайте PostgreSQL здесь.

  • Вы можете загрузить соответствующий двоичный файл в зависимости от требуемой версии и архитектуры.

postgresql-загрузка

  • Мы будем загружать последнюю доступную версию - v13.3 для 64-разрядной платформы Windows. После завершения загрузки запустите программу установки, дважды щелкнув ее.

postgresql-install-launch

  • Щелкните Далее, чтобы продолжить.

postgresql-install-расположение

  • Нажмите «Далее», чтобы продолжить использование пути по умолчанию, или укажите собственный путь установки.

  • Вы можете оставить компоненты по умолчанию выбранными и нажать «Далее», чтобы продолжить.

postgresql-install-datadir

  • Затем он запрашивает расположение каталога данных; это можно оставить по умолчанию, если для него не назначен отдельный выделенный диск или каталог. Щелкните Далее, чтобы продолжить.

postgresql-install-пароль

  • Укажите надежный пароль, который будет назначен пользователю postgres . По завершении нажмите «Далее».

postgresql-install-порт

  • Порт по умолчанию 5432 подходит для большинства случаев. Щелкните Далее, чтобы перейти на следующую страницу.

postgresql-install-locale

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

postgresql-установка-подтверждение

  • Все выбранные параметры мастера установки будут перечислены для просмотра и подтверждения. Если что-то нужно изменить, вернитесь и измените то же самое или нажмите «Далее», чтобы перейти на следующую страницу.

postgresql-установка-подтверждение-1

  • Программа установки покажет, что готова к установке. Когда все будет готово, нажмите «Далее», чтобы начать установку.

postgresql-install-progress

  • Дождитесь завершения установки. Подтверждение будет показано для того же.

postgresql-установка-завершена

  • После завершения вы можете снять флажок Stack Builder и нажать «Готово», чтобы выйти из мастера установки. Щелкните меню «Пуск» и найдите SQL Shell (psql) и щелкните его значок, чтобы открыть оболочку psql .

psql-стартовое меню

  • Открывается SQL Shell (psql) , где вы можете взаимодействовать с вашим экземпляром PostgreSQL после указания деталей соединения. Все элементы можно выбрать по умолчанию, просто нажав Enter за исключением пароля, где вам нужно ввести пароль, указанный для пользователя postgres во время мастера установки. Это приведет вас к приглашению postgres=# .

psql-sql-оболочки-окна

Подключиться к PostgreSQL

После установки автоматически создается пользователь postgres , который имеет superadmin доступ к экземпляру БД. В Linux, как привилегированный пользователь, вы можете переключиться на эту учетную запись как:

 $ sudo su - postgres

После этого мы можем сбросить пароль пользователя postgres как:

 $ psql -c "alter user postgres with password '[email protected]'"

А затем запустите приглашение PostgreSQL с psql как:

 $ psql

Вы попадете в командную строку PostgreSQL:

 $ psql psql (12.7 (Ubuntu 12.7-0ubuntu0.20.04.1)) Type "help" for help. postgres=#

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

 postgres=# CREATE DATABASE geekflaredb; CREATE DATABASE postgres=# CREATE USER geekuser WITH ENCRYPTED PASSWORD '[email protected]'; CREATE ROLE postgres=# GRANT ALL PRIVILEGES ON DATABASE geekflaredb to geekuser; GRANT postgres=#

Затем мы можем вывести список БД с помощью команды \l :

 postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+---------+---------+----------------------- geekflaredb | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =Tc/postgres + | | | | | postgres=CTc/postgres+ | | | | | geekuser=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=#

Теперь вы можете просто подключиться к БД, используя:

 postgres=# \c geekflaredb You are now connected to database "geekflaredb" as user "postgres". geekflaredb=#

Резюме

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

На официальном сайте есть учебное пособие по PostgreSQL.