Как установить postgresql на debian 10

Обновлено: 05.07.2024

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

В этом руководстве вы узнаете, как установить сервер баз данных PostgreSQL в Debian 10. Мы также рассмотрим основы базового администрирования баз данных.

Установка PostgreSQL

На момент написания этой статьи последней версией PostgreSQL, доступной из репозиториев Debian по умолчанию, была PostgreSQL версии 11.5.

Для установки PostgreSQL на ваш сервер Debian выполните следующие шаги в качестве root или пользователя с привилегиями sudo :

1. Начните с обновления пакетов APT:

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

3. После завершения установки запустится служба PostgreSQL. Для проверки установки используйте инструмент psql для вывода версии сервера:

Вывод должен выглядеть примерно так:

psql - это интерактивная терминальная программа, позволяющая взаимодействовать с PostgreSQL сервером.

Роли и методы аутентификации PostgreSQL

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

PostgreSQL поддерживает несколько методов аутентификации. Наиболее часто используются следующие методы:

  • Trust - роль может подключаться без пароля, если выполняются критерии, определенные в файле pg_hba.conf .
  • Password - роль может подключаться, предоставляя пароль. Пароли могут храниться в виде scram-sha-256 md5 и пароля (чистый текст).
  • Ident - поддерживается только для TCP/IP соединений. Он работает путем получения имени пользователя операционной системы клиента с возможностью отображения имени пользователя.
  • Peer - такой же, как и Ident, но поддерживается только при локальных подключениях.

Аутентификация клиента PostgreSQL определяется в конфигурационном файле pg_hba.conf . Для локальных подключений PostgreSQL настроен на использование метода peer аутентификации.

Пользователь postgres автоматически создается при установке PostgreSQL. Этот пользователь является суперпользователем экземпляра PostgreSQL, и он эквивалентен корневому пользователю в MySQL.

Чтобы войти на сервер PostgreSQL в качестве " postgres ", переключитесь на пользователя postgres и получите доступ к PostgreSQL командной строке с помощью утилиты psql :

Отсюда вы можете взаимодействовать с PostgreSQL сервером. Выход из оболочки PostgreSQL:

Вы можете использовать команду sudo для доступа к PostgreSQL командной строке без переключения пользователей:

Пользователь postgres обычно используется только с локального хоста.

Создание базы данных и ролей PostgreSQL

1. Во-первых, создайте роль, выполнив следующую команду:

2. Затем создадим базу данных с помощью команды createdb :

3. Чтобы предоставить права доступа пользователю к базе данных, подключитесь к оболочке PostgreSQL:

Выполните следующий запрос:

Разрешить удаленный доступ к PostgreSQL Server

По умолчанию PostgreSQL, сервер слушает только на локальном хосте 127.0.0.0.1 .

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

Откройте конфигурационный файл postgresql.conf и добавьте в раздел CONNECTIONS AND AUTHENTICATION адрес list_address = '*' . Это указывает серверу прослушивать все сетевые порты.

Сохраните файл и перезапустите службу PostgreSQL, чтобы изменения вступили в силу:

Проверьте изменения с помощью утилиты ss :

Вывод должен показать, что PostgreSQL сервер слушает все порты (0.0.0.0.0).

Последним шагом будет настройка сервера на прием удаленных подключений путем редактирования файла pg_hba.conf .
Ниже приведены несколько примеров, демонстрирующих различные варианты использования:

Мы показали вам, как устанавливать и настраивать PostgreSQL в Debian 10. Для получения дополнительной информации по этой теме обратитесь к документации PostgreSQL.

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

Важно то, что PostgreSQL позволяет вам определять свои собственные типы данных, добавлять пользовательские функции, даже писать код на разных языках программирования, таких как C/C++, Java, и т. д., без перекомпиляции вашей базы данных. PostgreSQL используется известными техническими компаниями, такими как Apple, Fujitsu, Red Hat, Cisco, Juniper Network и т. д. В этой статье мы покажем вам, как установить, защитить и настроить сервер баз данных PostgreSQL 11 Debian 10.

Установка PostgreSQL на Debian 10

Чтобы установить PostgreSQL Debian 10, используйте менеджер пакетов APT, который установит и сервер и клиент PostgreSQL 11.

apt install postgresql-11 postgresql-client-11


В Debian, база данных postgres инициализируется сразу после завершения установки пакета, как показано на следующем снимке.


Чтобы проверить, действительно ли база данных Postgres инициализирована, вы можете использовать утилиту pg_isready, которая проверяет статус соединения сервера PostgreSQL 11 следующим образом:


Кроме того, в systemd служба Postgres также запускается автоматически и включается при загрузке системы. Чтобы убедиться, что служба работает нормально, выполните следующую команду.

systemctl status postgresql


Далее следуют другие полезные команды systemctl для управления службой Postgres в systemd.

systemctl start postgresql
systemctl restart postgresql
systemctl stop postgresql

Чтобы перечитать конфигурацию после перезагрузки выполните:

systemctl reload postgresql

Настройка PostgreSQL

По умолчанию Postgres использует концепцию ролей для управления разрешениями доступа к базе данных, а роли базы данных концептуально полностью отделены от пользователей операционной системы. Роль может быть пользователем или группой, а роль с правом входа в сиcтему называется пользователем.

Только что инициализированная система всегда содержит одну предопределенную роль, называемую postgres, и имеет то же имя, что и учетная запись пользователя операционной системы, называемая postgres, которая используется для доступа к psql (оболочка Postgres) и другим программам баз данных.

Учетная запись пользователя системы Postgres не защищена паролем, для ее защиты вы можете создать пароль с помощью утилиты passwd.


Кроме того, роль Postgres (или, если угодно, суперпользователь базы данных) по умолчанию не защищена. Вам также необходимо защитить ее паролем. Теперь переключитесь на учетную запись пользователя системы postgres и роль postgres (не забудьте установить надежный и безопасный пароль), как показано ниже.

su - postgres
psql -c "ALTER USER postgres WITH PASSWORD 'новый_пароль';"


Далее выйдите из учетной записи postgres, чтобы продолжить настройку. Основной файл конфигурации Postgres находится по пути /etc/postgresql/11/main/postgresql.conf. В дополнение к этому файлу Postgres использует два других файла конфигурации, которые управляют аутентификацией клиента.

Аутентификация клиента контролируется файлом конфигурации /etc/postgresql/11/main/pg_hba.conf. Postgres предоставляет множество различных методов аутентификации клиента, включая аутентификацию на основе пароля. Клиентские соединения аутентифицируются на основе адреса хоста клиента, базы данных и пользователя.

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

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

В этом руководстве мы покажем, как настроить аутентификацию по паролю md5 для аутентификации клиента.

Найдите следующую строку и измените метод аутентификации на md5, как показано на скриншоте.

local all all md5


Сохраните изменения в файле и выйдите из него. Затем примените последние изменения, перезапустив службу Postgres следующим образом.

systemctl restart postgresql

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

Чтобы создать базу данных с именем «test_db», выполните следующую SQL команду:

CREATE DATABASE test_db;

Затем создайте пользователя базы данных (роль с правом входа), который будет управлять новой базой данных:

CREATE USER test_user PASSWORD ‘новый_пароль’;

На этом настройка postgresql Debian 10 практически завершена. Чтобы подключиться к test_db от имени пользователя test_user, выполните:

psql -d test_db -U test_user

Для получения дополнительной информации см. Документацию PostgreSQL 11.

Выводы

На этом, пока что, все! В этой статье мы показали, как делается установка Postgresql Debian 10, а также как защитить и настроить полученный сервер баз данных. Есть ли у вас какие-либо вопросы или мысли, которыми хочется поделиться? Используйте форму комментариев ниже.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Как установить PostgreSQL на Debian 10

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

Установка PostgreSQL

На момент написания этой статьи последней версией PostgreSQL, доступной из репозиториев Debian по умолчанию, была PostgreSQL версии 11.5.

Чтобы установить PostgreSQL на ваш сервер Debian, выполните следующие действия от имени пользователя root или пользователя с привилегиями sudo :

Начните с обновления индекса пакета APT:

Установите сервер PostgreSQL и пакет contrib, который предоставляет дополнительные функции для базы данных PostgreSQL:

После завершения установки запустится служба PostgreSQL. Чтобы проверить установку, используйте psql инструмент для печати версии сервера :

Результат должен выглядеть примерно так:

psql это интерактивная программа терминала, которая позволяет вам взаимодействовать с сервером PostgreSQL.

Роли и методы аутентификации PostgreSQL

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

PostgreSQL поддерживает несколько методов аутентификации . Наиболее часто используемые методы:

  • Доверие - роль может подключаться без пароля, если pg_hba.conf соблюдаются критерии, определенные в .
  • Пароль - роль может подключиться, указав пароль. Пароли могут храниться в виде scram-sha-256 md5 и password (в виде открытого текста).
  • Идентификатор - поддерживается только для соединений TCP / IP. Он работает путем получения имени пользователя операционной системы клиента с необязательным отображением имени пользователя.
  • Peer - То же, что и Ident, но поддерживается только для локальных подключений.


Аутентификация клиента PostgreSQL определяется в файле конфигурации с именем pg_hba.conf . Для локальных подключений PostgreSQL настроен на использование метода одноранговой аутентификации.

Пользователь «postgres» автоматически создается при установке PostgreSQL. Этот пользователь является суперпользователем для экземпляра PostgreSQL и эквивалентен корневому пользователю MySQL.

Чтобы войти на сервер PostgreSQL как «postgres», переключитесь на пользовательский postgres и получите доступ к приглашению PostgreSQL с помощью psql утилиты:

Отсюда вы можете взаимодействовать с сервером PostgreSQL. Чтобы выйти из оболочки PostgreSQL, введите:

Вы можете использовать sudo команду для доступа к командной строке PostgreSQL, не переключая пользователей:

postgres Пользователь , как правило , используется только в локальном хосте.

Создание роли и базы данных PostgreSQL

Команда createuser позволяет создавать новые роли из командной строки. Только суперпользователи и роли с CREATEROLE привилегиями могут создавать новые роли.

В следующем примере мы создадим новую роль с именем kylo , базу данных с именем kylodb и предоставим ей права доступа к базе данных.

Сначала создайте роль, введя следующую команду:

Затем создайте базу данных с помощью createdb команды:

Чтобы предоставить пользователю права доступа к базе данных, подключитесь к оболочке PostgreSQL:

Выполните следующий запрос:

Включить удаленный доступ к серверу PostgreSQL

По умолчанию сервер PostgreSQL прослушивает только локальный интерфейс 127.0.0.1 .

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

Откройте файл конфигурации postgresql.conf и добавьте listen_addresses = '*' в CONNECTIONS AND AUTHENTICATION раздел. Это указывает серверу прослушивать все сетевые интерфейсы.

Сохраните файл и перезапустите службу PostgreSQL, чтобы изменения вступили в силу:

Проверьте изменения с помощью ss утилиты:

Вывод должен показать, что сервер PostgreSQL прослушивает все интерфейсы (0.0.0.0).

Последний шаг - настроить сервер для приема удаленных входов в систему путем редактирования pg_hba.conf файла.

Ниже приведены несколько примеров, показывающих различные варианты использования:

Заключение

Мы показали вам, как установить и настроить PostgreSQL в Debian 10. Для получения дополнительной информации по этой теме обратитесь к документации PostgreSQL .

последняя стабильная версия PostgreSQL доступна в официальном репозитории пакетов Debian 10 Buster. Таким образом, вы можете легко установить PostgreSQL с помощью диспетчера пакетов APT.

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


Репозиторий пакетов APT кеш должен быть обновлен.


Теперь установите PostgreSQL с следующая команда:


Нажмите Y , а затем нажмите , чтобы подтвердить установку.


Диспетчер пакетов APT загрузит и установит все необходимые пакеты.


На этом этапе должен быть установлен PostgreSQL.


Теперь выведите номер версии PostgreSQL следующим образом: ommand:

Как видите, я использую PostgreSQL 11.5. Это последняя стабильная версия PostgreSQL на момент написания этой статьи.


Управление службой PostgreSQL:

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


Как видите, служба postgresql активна . Услуга также включена . Итак, он запустится автоматически при загрузке системы.


Если служба postgresql не активна в вашем случае, вы можете запустить сервер postgresql с помощью следующей команды:

Если служба postgresql отключена , то он не будет запускаться автоматически при загрузке системы. Вы можете включить его с помощью следующей команды:

Настройка пользователя базы данных PostgreSQL:

В конфигурации по умолчанию вы можете использовать postgresql только как пользователь postgres . Итак, вы должны войти в систему как пользователь postgres , чтобы выполнить любую команду PostgreSQL..

У пользователя postgres по умолчанию пароль не установлен. Таким образом, вы не сможете войти в систему как пользователь postgres .

Чтобы установить пароль для пользователя postgres выполните следующую команду:


Теперь введите пароль и нажмите .


Повторно введите тот же пароль и снова нажмите .


Необходимо установить пароль для Пользователь postgres .


Теперь, чтобы войти от имени пользователя postgres выполните следующую команду:


Введите пароль, который вы установили для postgres пользователя и нажмите .


Вы должны войти в систему.


Создание базы данных PostgreSQL:

Теперь, чтобы создать новую базу данных linuxhint , выполните следующую команду:


После создания базы данных linuxhint войдите в оболочку PostgreSQL с помощью следующей команды:


Вы должны войти в Оболочка PostgreSQL. Теперь вы можете запускать необходимые операторы SQL и работать с базой данных linuxhint .


Как видите, я выполнил простую инструкцию SQL, и она сработала правильно.


Закончив работу с базой данных, вы можно выйти из оболочки PostgreSQL следующим образом:


Вы должны вернуться в оболочку Linux.


Создание таблицы PostgreSQL:

Теперь давайте создадим новую таблицу магазины в наша база данных linuxhint .

Вот инструкция SQL для создания таблицы магазины . Скопируйте и вставьте операторы SQL в оболочку PostgreSQL, чтобы создать новую таблицу shops .

СОЗДАТЬ ТАБЛИЦУ магазины (
shopId INT NOT NULL,
shopName VARCHAR (100) NOT NULL,
numEmployee INT NOT NULL
);

магазины должна быть создана.


Вы можете перечислить все доступные таблицы в вашей базе данных как следует:

Как видите, таблица магазины в списке.


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


Вставка данных в таблицу:

Теперь давайте вставим несколько новых строк в shops .

Чтобы вставить новые строки в таблицу shops , вы можете запустить следующую команду INSERT операторы SQL.

Операторы SQL выполнены успешно. Я вставил 3 фиктивных строки в таблицу магазины . Отлично!


Выбор данных из таблицы:

Теперь, чтобы выбрать все строки из таблицы shops и распечатать их на консоли, выполните следующую инструкцию SQL.


Как видите, 3 пустые строки, которые я вставил ранее, печатаются на консоли в табличном формате.


Удаление данных из таблицы:

Чтобы удалить строку из таблицы shops с помощью shopId 1 (скажем), запустите следующий оператор SQL:


Строку следует удалить из таблицы магазины . .


Как видите, строка не в таблица магазины любая подробнее.


Обновление данных таблицы:

Допустим, вы хотите обновить столбец numEmployee из 4 на 8 (скажем) для магазина с shopId 2 из магазинов . таблица.


Для этого выполните следующую инструкцию SQL .

ОБНОВЛЕНИЕ магазинов НАБОР numEmployee = 8 WHERE shopId = 2;


Строка должна быть обновлена.


Как видите, numEmployee для магазина с shopId 2 обновлен до 8. .


Удаление таблицы:

Чтобы удалить таблицу магазины , выполните следующую инструкцию SQL:


Таблица должна быть удалена.


Удаление базы данных:

Чтобы удалить базу данных linuxhint , выполните следующую команду от имени пользователя postgres .


База данных linuxhint должна быть удалена.

Итак, вот как вы устанавливаете и используете PostgreSQL в Debian 10. Спасибо за чтение этой статьи.

Читайте также: