- Установка PostgreSQL на Debian
- Установка из репозитория Debian 11
- Установка из официального репозитория СУБД
- Базовая настройка
- Создание роли и базы данных
- Настройка удалённого доступа
- Заключение
- Установка и настройка PostgreSQL 12 на Debian 10
- Установка PostgreSQL 12 на Debian 10
- Шаг 1 – Подключение репозитория и обновление списка пакетов в системе
- Шаг 2 – Установка необходимых пакетов для PostgreSQL
- Шаг 3 – Проверка установки
- Настройка PostgreSQL 12 в Debian 10
- Создание пользователя и базы данных в PostgreSQL
- Разрешаем подключение к PostgreSQL по сети
- Удаленное подключение к PostgreSQL 12 с помощью pgAdmin 4
Установка PostgreSQL на Debian
PostgreSQL — система управления реляционными базами данных продвинутого уровня с открытым исходным кодом. Установить её на Debian 11 можно двумя способами: из репозитория операционной системы или из официального репозитория PostgreSQL.
В этой статье вы изучите оба метода, а также научитесь выполнять стандартные операции вроде создания ролей и баз данных.
Установка из репозитория Debian 11
На Debian установить PostgreSQL можно прямо из системного репозитория.
Сначала обновите список пакетов. Запустите терминал и выполните:
sudo apt update && sudo apt upgrade
Пакет PostgreSQL находится в репозитории Debian, поэтому вы можете установить его с помощью утилиты apt. Для этого выполните:
sudo apt install postgresql postgresql-contrib
После завершения установки проверьте статус соответствующей службы с помощью команды:
sudo systemctl status postgresql
Если служба не запустилась автоматически, вы можете стартовать её вручную. Для этого выполните:
sudo systemctl start postgresql
Чтобы остановить работающую службу, выполните:
sudo systemctl stop postgresql
Прежде чем настраивать PostgreSQL на Debian , убедитесь в том, что служба запущена.
Установка из официального репозитория СУБД
Если вы хотите использовать только свежие версии Постгреса, рекомендуется использовать для установки и последующего обновления официальный репозиторий СУБД.
Прежде всего необходимо добавить ключ подписи GPG. Это требование безопасности, чтобы подтвердить подлинность репозитория PostgreSQL. Чтобы сделать это, запустите терминал и выполните:
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /usr/share/keyrings/postgresql-keyring.gpg
Теперь вы готовы добавить репозиторий Postgres. Используйте следующую команду:
echo "deb [signed-by=/usr/share/keyrings/postgresql-keyring.gpg] http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list
После успешной интеграции библиотеки PostgreSQL вы готовы к установке СУБД. Но перед этим рекомендуется обновить репозиторий системы с помощью команды:
После обновления выполните PostgreSQL install на Debian:
sudo apt install postgresql
Установка завершена. Теперь можно переходить к базовой настройке СУБД.
Базовая настройка
При установке СУБД автоматически создаётся пользователь postgres. Вы можете использовать эту учётную запись для первого подключения.
Переключитесь на пользователя postgres :
Запустите утилиту psql — это оболочка для управления PostgreSQL:
Теперь вы можете взаимодействовать с сервером PostgreSQL. Чтобы выйти из оболочки, введите:
Вы можете использовать команду для доступа к командной строке Postgres без переключения пользователей:
Однако пользователь postgres обычно используется только с локального хоста. Если, например, вы используете облачные базы данных , рекомендуется создать новую роль для подключения.
Создание роли и базы данных
Команда createuser позволяет создавать новые роли из командной строки. Только суперпользователи и роли с привилегиями CREATEROLE могут создавать новые роли.
В следующем примере создадим новую роль с именем timeweb и базу данных с именем timeweb_db , а затем предоставим новой роли привилегии для управления базой данных.
Сначала создайте новую роль:
sudo su - postgres -c "createuser timeweb"
sudo su - postgres -c "createdb timeweb_db"
Чтобы предоставить пользователю права доступа к базе данных, подключитесь к оболочке:
Выполните следующий запрос, чтобы предоставить пользователю timeweb привилегии для управления базой данных timeweb_db :
GRANT ALL PRIVILEGES ON DATABASE timeweb_db TO timeweb;
Создавать новые роли и базы данных можно и сразу в оболочке СУБД. В таком случае синтаксис будет незначительно отличаться.
Чтобы создать новую роль с паролем, выполните:
create user cloud with password 'cloudtimeweb';
Чтобы создать новую БД, выполните:
Затем нужно также предоставить все привилегии командой GRANT ALL PRIVILEGES ON DATABASE … TO … .
Настройка удалённого доступа
По умолчанию сервер Postgres слушает только локальный интерфейс 127.0.0.1. Это может быть неудобно. Допустим, у вас есть сервер на Timeweb Cloud с установленной СУБД. Гораздо комфортнее будет подключаться к нему удалённо. Для этого нужно настроить сервер на прослушивание других сетевых интерфейсов.
Чтобы изменить конфигурацию, с помощью любого редактора откройте файл postgresql.conf . В этом примере используется редактор nano:
sudo nano /etc/postgresql/12/main/postgresql.conf
Найдите в файле конфигурации раздел CONNECTIONS AND AUTHENTICATION и строку #listen_addresses = ‘localhost’ . Измените значение строки на listen_addresses = ‘*’ . Если вы хотите, чтобы сервер слушал не все сетевые интерфейсы, а только выбранный, укажите его вместо звёздочки.
Сохраните файл и перезапустите службу Postgres, чтобы изменения вступили в силу:
sudo service postgresql restart
Последний шаг — разрешение подключений из сети. Чтобы установить его, нужно отредактировать файл pg_hba.conf . Откройте его в редакторе:
sudo nano /etc/postgresql/12/main/pg_hba.conf
Найдите строку IPv4 local connections . Укажите нужную сеть. Например, вот так:
Вы можете использовать другие методы аутентификации. Полный их список смотрите в документации СУБД .
Заключение
Установка PostgreSQL на Debian выполняется двумя способами.
Первый вариант — использование системного репозитория. Его главный плюс — скорость. Не нужно ничего устанавливать дополнительно, достаточно выполнить одну команду. Минус в том, что в системном репозитории не всегда находится последняя версия ПО.
Второй вариант установки — использование официального репозитория PostgreSQL. Этот способ гарантирует, что вы будете пользоваться последней версией СУБД. Но действий придётся выполнить чуть больше — сначала добавить сам официальный репозиторий и лишь затем ставить Постгрес из него.
При дальнейшей работе с базами PostgreSQL не забывайте создавать бэкапы данных. С этим поможет наша статья «Дампы в PostgreSQL: резервное копирование и восстановление».
Кстати, в официальном канале Timeweb Cloud собрали комьюнити из специалистов, которые говорят про IT-тренды, делятся полезными инструкциями и даже приглашают к себе работать.
Установка и настройка PostgreSQL 12 на Debian 10
Всем привет! Сегодня мы разберем процесс установки PostgreSQL 12 на операционную систему Debian 10, а также выполним первоначальную настройку PostgreSQL. В результате у нас получится полноценный сервер баз данных, реализованный на базе Debian + PostgreSQL, и данный сервер можно использовать в сети предприятия.
Установка PostgreSQL 12 на Debian 10
Итак, давайте перейдем к установке и рассмотрим все шаги, которые необходимо выполнить, чтобы установить PostgreSQL 12 на Debian 10.
Установку я буду производить удаленно, используя программу PuTTY.
Шаг 1 – Подключение репозитория и обновление списка пакетов в системе
Установку и настройку PostgreSQL необходимо выполнять с правами пользователя root, поэтому давайте сразу переключимся на root.
Для этого пишем команду su и вводим пароль.
Далее, давайте проверим, нет ли в системе необходимых нам пакетов, так как вдруг нам и не нужно подключать дополнительный репозиторий.
Для этого вводим следующую команду.
apt-cache search postgresql-12
Как видим, в Debian 10 нужной нам версии PostgreSQL нет, поэтому нам нужно подключить дополнительный репозиторий от разработчиков. Если у Вас более новая версия Debian и в стандартных репозиториях есть 12 версия PostgreSQL, то дополнительный репозиторий Вам подключать не нужно, т.е. данный шаг Вы можете пропустить.
А всем остальным, у которых также как у меня нет нужной версии, для подключения репозитория необходимо ввести следующую команду, которая создает файл в источниках с адресом нужного репозитория.
sh -c 'echo " deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main " >> /etc/apt/sources.list.d/pgdg.list'
Примечание! Здесь обязательно стоить отметить, что этот репозиторий предназначен для Debian 10, для других версий адрес репозитория будет другим, например, если Вам нужно установить PostgreSQL на Debian 9, то в адресе репозитория вместо buster напишите stretch, т.е. замените кодовое имя версии.
После этого нам необходимо импортировать ключ подписи репозитория, для этого вводим команду.
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Осталось обновить список пакетов в системе, это делаем стандартной командой.
И для проверки того, что теперь нам доступны пакеты PostgreSQL 12, давайте снова запустим команду поиска пакетов.
apt-cache search postgresql-12
Теперь нужные пакеты нам доступны и мы можем переходить к установке PostgreSQL 12.
Шаг 2 – Установка необходимых пакетов для PostgreSQL
Для установки PostgreSQL 12 и базовых стандартных утилит необходимо установить пакет postgresql-12, это делается следующей командой.
apt-get -y install postgresql-12
Шаг 3 – Проверка установки
Чтобы проверить, установился и запущен ли Postgres, давайте выполним следующую команду, которая покажет статус сервиса PostgreSQL.
systemctl status postgresql
Как видим, PostgreSQL 12 установился и работает.
Настройка PostgreSQL 12 в Debian 10
PostgreSQL у нас установлен, однако на текущий момент им пользоваться пока нельзя, поэтому нам необходимо его настроить, в частности создать пользователя, указать какие сетевые интерфейсы будет прослушивать сервер, а также разрешить подключения по сети.
Создание пользователя и базы данных в PostgreSQL
После установки к серверу PostgreSQL мы можем подключиться только с помощью системного пользователя postgres, причем без пароля.
Давайте переключимся на пользователя postgres (данная учетная запись была создана автоматически во время установки PostgreSQL).
Затем запускаем утилиту psql – это консоль для PostgreSQL.
Первым делом нам нужно задать пароль для пользователя postgres.
Затем создаем нового пользователя на сервере PostgreSQL, так как работать от имени postgres крайне не рекомендуется.
create user info_comp with password '123456';
где info_comp – это имя пользователя, ‘123456’ – это его пароль, Вы, соответственно, придумываете и подставляете свои данные.
Далее давайте создадим базу данных.
где test_db – это имя новой базы данных.
Теперь давайте дадим права на управление базой данных нашему новому пользователю.
grant all privileges on database test_db to info_comp;
Все готово, выходим из консоли.
Для проверки давайте подключимся к PostgreSQL от имени нового пользователя, на предложение о вводе пароля вводим пароль от новой учетной записи.
psql -h localhost test_db info_comp
Все работает, я подключился. Для выхода снова набираем \q.
Для переключения обратно на root вводим exit.
Разрешаем подключение к PostgreSQL по сети
По умолчанию PostgreSQL прослушивает только адрес localhost, поэтому, для того чтобы мы могли подключаться по сети, нам нужно указать, какие сетевые интерфейсы будет просушивать PostgreSQL. Я для примера укажу, что прослушивать нужно все доступные интерфейсы. Если у Вас несколько сетевых интерфейсов, и Вы хотите, чтобы PostgreSQL использовал только один конкретный, то Вы его можете указать именно здесь.
Чтобы это сделать, открываем файл postgresql.conf, например, редактором nano.
nano /etc/postgresql/12/main/postgresql.conf
#listen_addresses = 'localhost'
и вносим следующие изменения (вместо звездочки Вы в случае необходимости указываете IP адрес нужного интерфейса).
Сохраняем изменения сочетанием клавиш CTRL+O и подтверждаем нажатием Enter, затем просто закрываем редактор nano сочетанием клавиш CTRL+X.
Теперь давайте разрешим подключение из сети, я для примера разрешу подключаться из сети 192.168.1.0/24 с методом аутентификации md5.
Для этого открываем файл pg_hba.conf
nano /etc/postgresql/12/main/pg_hba.conf
Заметка! Если Вас интересует язык SQL, то рекомендую почитать книгу «SQL код» – это самоучитель по языку SQL для начинающих программистов. В ней очень подробно рассмотрены основные конструкции языка.
И указываем нужную нам сеть (если IPv6 Вы не будете использовать, то можете закомментировать соответствующие строки знаком #).
Далее точно так же сохраняем изменения сочетанием клавиш CTRL+O, подтверждаем нажатием Enter и закрываем редактор nano сочетанием клавиш CTRL+X.
Перезапускаем PostgreSQL, чтобы изменения вступили в силу.
systemctl restart postgresql
Удаленное подключение к PostgreSQL 12 с помощью pgAdmin 4
Сервер PostgreSQL настроен, поэтому, чтобы проверить его работоспособность, давайте подключимся к серверу удаленно с помощью pgAdmin 4.
Для этого запускаем на клиенте pgAdmin 4, в обозревателе кликаем на контейнер «Servers» и выбираем «Создать -> Сервер».
Далее откроется окно создания сервера, в котором нам нужно на вкладке «Общие» ввести название сервера.
А на вкладке «Соединение» указать IP адрес сервера и данные пользователя, под которым мы подключимся к серверу.
В результате мы подключимся к серверу, а в обозревателе отобразятся все объекты на данном сервере.
На сегодня это все, надеюсь, материал был Вам полезен, пока!