Всем привет! Сегодня мы разберем процесс установки PostgreSQL 12 на операционную систему Debian 10, а также выполним первоначальную настройку PostgreSQL. В результате у нас получится полноценный сервер баз данных, реализованный на базе Debian + PostgreSQL, и данный сервер можно использовать в сети предприятия.
- Установка PostgreSQL 12 на Debian 10
- Шаг 1 – Подключение репозитория и обновление списка пакетов в системе
- Шаг 2 – Установка необходимых пакетов для PostgreSQL
- Шаг 3 – Проверка установки
- Настройка PostgreSQL 12 в Debian 10
- Создание пользователя и базы данных в PostgreSQL
- Разрешаем подключение к PostgreSQL по сети
- Удаленное подключение к PostgreSQL 12 с помощью pgAdmin 4
Установка PostgreSQL 12 на Debian 10
Итак, давайте перейдем к установке и рассмотрим все шаги, которые необходимо выполнить, чтобы установить PostgreSQL 12 на Debian 10.
Установку я буду производить удаленно, используя программу PuTTY.
Шаг 1 – Подключение репозитория и обновление списка пакетов в системе
Установку и настройку PostgreSQL необходимо выполнять с правами пользователя root, поэтому давайте сразу переключимся на root.
Для этого пишем команду su и вводим пароль.
Далее, давайте проверим, нет ли в системе необходимых нам пакетов, так как вдруг нам и не нужно подключать дополнительный репозиторий.
Заметка! Что такое репозитории в Linux.
Для этого вводим следующую команду.
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 -
Осталось обновить список пакетов в системе, это делаем стандартной командой.
apt-get update
И для проверки того, что теперь нам доступны пакеты PostgreSQL 12, давайте снова запустим команду поиска пакетов.
apt-cache search postgresql-12
Теперь нужные пакеты нам доступны и мы можем переходить к установке PostgreSQL 12.
Заметка! Установка Debian 10 рядом с Windows 10.
Шаг 2 – Установка необходимых пакетов для PostgreSQL
Для установки PostgreSQL 12 и базовых стандартных утилит необходимо установить пакет postgresql-12, это делается следующей командой.
apt-get -y install postgresql-12
Шаг 3 – Проверка установки
Чтобы проверить, установился и запущен ли Postgres, давайте выполним следующую команду, которая покажет статус сервиса PostgreSQL.
systemctl status postgresql
Как видим, PostgreSQL 12 установился и работает.
Заметка! Установка MySQL 8 на Windows 10.
Настройка PostgreSQL 12 в Debian 10
PostgreSQL у нас установлен, однако на текущий момент им пользоваться пока нельзя, поэтому нам необходимо его настроить, в частности создать пользователя, указать какие сетевые интерфейсы будет прослушивать сервер, а также разрешить подключения по сети.
Создание пользователя и базы данных в PostgreSQL
После установки к серверу PostgreSQL мы можем подключиться только с помощью системного пользователя postgres, причем без пароля.
Давайте переключимся на пользователя postgres (данная учетная запись была создана автоматически во время установки PostgreSQL).
su - postgres
Затем запускаем утилиту psql – это консоль для PostgreSQL.
psql
Первым делом нам нужно задать пароль для пользователя postgres.
\password postgres
Затем создаем нового пользователя на сервере PostgreSQL, так как работать от имени postgres крайне не рекомендуется.
create user info_comp with password '123456';
где info_comp – это имя пользователя, ‘123456’ – это его пароль, Вы, соответственно, придумываете и подставляете свои данные.
Далее давайте создадим базу данных.
create database test_db;
где test_db – это имя новой базы данных.
Теперь давайте дадим права на управление базой данных нашему новому пользователю.
grant all privileges on database test_db to info_comp;
Все готово, выходим из консоли.
\q
Для проверки давайте подключимся к PostgreSQL от имени нового пользователя, на предложение о вводе пароля вводим пароль от новой учетной записи.
psql -h localhost test_db info_comp
Все работает, я подключился. Для выхода снова набираем \q.
\q
Для переключения обратно на root вводим exit.
exit
Заметка! Установка Microsoft SQL Server 2019 Express на Windows 10.
Разрешаем подключение к PostgreSQL по сети
По умолчанию PostgreSQL прослушивает только адрес localhost, поэтому, для того чтобы мы могли подключаться по сети, нам нужно указать, какие сетевые интерфейсы будет просушивать PostgreSQL. Я для примера укажу, что прослушивать нужно все доступные интерфейсы. Если у Вас несколько сетевых интерфейсов, и Вы хотите, чтобы PostgreSQL использовал только один конкретный, то Вы его можете указать именно здесь.
Чтобы это сделать, открываем файл postgresql.conf, например, редактором nano.
nano /etc/postgresql/12/main/postgresql.conf
Находим следующую строку.
#listen_addresses = 'localhost'
и вносим следующие изменения (вместо звездочки Вы в случае необходимости указываете IP адрес нужного интерфейса).
listen_addresses = '*'
Сохраняем изменения сочетанием клавиш 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 адрес сервера и данные пользователя, под которым мы подключимся к серверу.
Нажимаем «Сохранить».
В результате мы подключимся к серверу, а в обозревателе отобразятся все объекты на данном сервере.
На сегодня это все, надеюсь, материал был Вам полезен, пока!
А на вкладке «Соединение» указать IP адрес сервера и данные пользователя, под которым мы подключимся к серверу.
Дак эт самое, а где их узнать то:?:
IP адрес – это IP адрес компьютера, на котором установлен PostgreSQL
Данные пользователя – это логин и пароль пользователя в PostgreSQL. Этого пользователя мы создавали в процессе настройки PostgreSQL (см. раздел текущей статьи «Настройка PostgreSQL 12 в Debian 10»).
Если PostgreSQL устанавливали не Вы, то Вам необходимо узнать данные для подключения у администратора.
Добрый день! Проблема оказалась в том, что в pgAdmin не подключается сервер. Пишет, что не найден. Хотя адрес вбиваю правильный. В чем может быть проблема? Возможно это из-за того, что у меня Debian лежит на виртуалке (VirtualBox) на том же компе, где и стоит pgAdmin?
Добавление к предыдущему. Вот что пишет:
Unable to connect to server:
could not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host «192.168.1.195» and accepting
TCP/IP connections on port 5432?
(Не удалось подключиться к серверу:
не удалось подключиться к серверу: отказано в подключении (0x0000274D/10061)
Работает ли сервер на хосте «192.168.1.195» и принимает ли он
Соединения TCP/IP на порту 5432?)
Самый понятный туториал