Как установить PostgreSQL 15 на Windows 10 и 11 - Академия Selectel

Как установить PostgreSQL 15 на Windows 10 и 11

В инструкции установим и настроим СУБД PostgreSQL на операционной системе Windows, познакомимся с графическим интерфейсом pgAdmin 4 и другими компонентами, а еще научимся управлять PostgreSQL через командную строку.

Установка PostgreSQL по шагам

1. Загружаем дистрибутив

Мы советуем скачивать актуальные версии на официальном сайте СУБД. Чтобы найти установщик PostgreSQL 15 для Windows нажимаем Download → Windows → Download the installer.

На сайте выбираем интересующую нас версию PostgreSQL и платформу Windows x86-64. Начинается загрузка установочного файла на компьютер.

2. Запускаем установочный файл

В ходе установки проводится проверка на наличие необходимых компонентов, например, Microsoft Visual C++. Если каких-то компонентов не хватает, они устанавливаются автоматически.

В открывшемся приветственном окне нажимаем Next.

3. Указываем каталог для установки

Выбираем путь, куда нужно установить PostgreSQL 15. По умолчанию предлагается C:\Program Files\PostgreSQL\15, его можно оставить.

4. Выбираем дополнительные компоненты

Вместе с СУБД можно установить следующие компоненты:

  • PostgreSQL Server — это сам сервер баз данных PostgreSQL;
  • pgAdmin 4 — приложение с графическим интерфейсом для администрирования СУБД;
  • Stack Builder — утилита, которая поможет установить дополнительные библиотеки и инструменты в PostgreSQL;
  • Command Line Tools — инструменты для работы с СУБД через командную строку.

5. Указываем каталог для файлов баз данных

Можно оставить путь по умолчанию C:\Program Files\PostgreSQL\15\data или выбрать свой. Здесь будет храниться вся информация, поэтому перед выбором каталога важно проверить, что на диске достаточно свободного места.

6. Устанавливаем пароль для системного пользователя

Рекомендуем выбирать пароль из 12 и более символов, со строчными и прописными буквами, цифрами и символами. Логин postgres устанавливается по умолчанию.

7. Выбираем порт и кодировку

Можно оставить порт по умолчанию 5432 или указать свой. Далее нажать Next.

В появившемся списке локалей выбираем подходящую для себя локализацию или оставляем значение по умолчанию [Default locale]. Нажимаем Next.

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

8. Проверяем параметры и завершаем установку

В финальном окне выводится сводная информация об установке PostgreSQL 15: дополнительные компоненты, выбранные порт и каталог, логин. Если параметры указаны верно, нажимаем Next или возвращаемся для корректировок с помощью кнопки Back.

Все готово. Нажмите Next и дождитесь, когда необходимые компоненты установятся. Обычно процесс занимает не более 5 минут.

Одновременно с завершением процесса установки можно запустить компонент Stack Builder. Если запуск не требуется, снимаем флажок и нажимаем Finish.

Установка приложений с помощью Stack Builder

Запустить Stack Builder после окончания установки PostgreSQL можно с помощью команды:

C:\"Program Files"\PostgreSQL\15\bin\stackbuilder.exe

При этом путь будет зависеть от того, какие диск и каталог были выбраны во время установки СУБД.

В начальном окне Stack Builder выбираем СУБД, для которой будем устанавливать дополнения. Для дальнейшей загрузки необходимо подключение к Интернету.

Далее выбираем дополнительные приложения, которые нужны для работы с базой данных. При клике на любой из компонентов внизу окна появляется его краткое описание. Мы выбрали Migration Toolkit и PEM-HTTPD.

Следующим шагом указываем путь на локальной машине, куда нужно загрузить пакеты выбранных дополнений.

Дожидаемся загрузки файлов.

После этого скачанные приложения устанавливаются по очереди. Перезагружать компьютер следует только после того, как все дополнения из набора будут установлены.

Если устройство все-таки было перезапущено раньше, чем завершилась установка всех приложений, можно запустить инсталляцию с помощью .exe файла. Он находится в папке, которая была выбрана на предыдущем шаге. В нашем примере это папка C:\Program Files\PostgreSQL\additions.

После установки всех выбранных приложений Stack Builder сообщает об успешном завершении.

Запуск pgAdmin 4

pgAdmin 4 — это утилита с простым визуальным интерфейсом, которая помогает работать с PostgreSQL. Ее можно установить отдельно от СУБД, скачав дистрибутив на официальном сайте.

Запустить pgAdmin 4 на устройстве можно через поиск в панели Пуск.

Еще один способ запустить утилиту — ввести в командной строке:

C:\Users\Selectel>C:\"Program Files"\PostgreSQL\15\"pgAdmin 4"\bin\pgAdmin4

Сразу при запуске необходимо придумать мастер пароль. Он нужен для защиты сервера и последующей разблокировки сохраненных паролей.

Чтобы подключиться к серверу СУБД кликните на Servers в левой панели и в раскрывшемся списке выберите PostgreSQL 15. Нажмите на него правой кнопки мыши и выберите Connect Server.

Для подключения нужно ввести пароль пользователя postgres — его мы задавали на этапе установки PostgreSQL 15.

После аутентификации мы подключаемся к своему серверу PostgreSQL 15 и видим все объекты, которые на нем расположены.

Чтобы изменить язык в pgAdmin 4 нажмите в левом верхнем углу File → Preferences. Далее в открывшемся окне в разделе Miscellaneous выберите пункт User language и в выпадающем списке с доступными языками найдите Russian. Язык изменится после перезагрузки страницы.

Сетевой доступ к PostgreSQL

Чтобы сервер PostgreSQL был доступен другим устройствам по сети, необходимо добавить правила в файрволе Windows. Проще всего сделать это с помощью PowerShell или командной строки. При этом команды необходимо выполнять от имени администратора. Еще можно использовать графический интерфейс. Ниже рассмотрим каждый из способов.

PowerShell

New-NetFirewallRule -Name 'POSTGRESQL-PORT' -DisplayName 'Selectel Port PostgreSQL2' -Direction Inbound -Enabled True -Protocol TCP -LocalPort 5432

Командная строка

netsh advfirewall firewall add rule name="Selectel Port PostgreSQL" dir=in action=allow protocol=TCP localport=5432

Графический интерфейс

В меню Пуск ищем брандмауэр и выбираем Брандмауэр Защитника Windows.

В левом меню кликаем на Дополнительные параметры.

Заходим в Правила для входящих подключений и в правой части окна выбираем Создать правило.

Устанавливаем настройки так, как показано на скринах ниже:

На шаге Профиль вы сами решаете, для каких профилей использовать новое правило. Мы оставим все профили включенными.

Задаем имя для нового правила и его описание.

После того, как мы добавили правило в файрволе Windows любым из описанных способов, оно появится в брандмауэре.

Смена порта для подключения к СУБД

Чтобы изменить порт подключения к PostgreSQL находим файл postgresql.conf. Путь к нему — C:\Program Files\PostgreSQL\15\data.

В этом файле ищем строку с указанием port=5432 и меняем номер порта на нужный. Для поиска нужной строки поможет Ctrl+F.

После этого перезапускаем службу postgresql-x64-15 используя встроенное в Windows приложение Службы. Его можно найти в меню Пуск или с помощью команды Win+R на клавиатуре и далее services.msc.

Еще postgresql-x64-15 можно перезапустить с помощью PowerShell. Для этого в консоли PowerShell нужно ввести команду:

Restart-Service-Name postgresql-x64-15

Проверка открытого порта

Проверить открыт ли указанный порт для входящего трафика можно с помощью пробного подключения по протоколу Telnet. Дальше рассмотрим по шагам, как включить этот протокол на Windows 11 и 10.

Telnet на Windows 11

  1. Через меню Пуск находим и открываем приложение Параметры.
  2. В открывшемся окне слева выбираем Приложения.

3. В окне Приложения открываем пункт Дополнительные компоненты.

4. В поисковой строке вводим Другие компоненты и открываем указанный параметр.

5. В открывшемся окне находим Клиент Telnet и включаем этот компонент, нажав кнопку ОК.

Telnet на Windows 10

  1. Через меню Пуск находим и открываем приложение Панель управления.

2. В открывшемся окне находим Программы и компоненты.

3. Кликаем слева на Включение или отключение компонентов Windows.

4. В открывшемся окне находим Клиент Telnet и включаем этот компонент, нажав кнопку ОК.

Теперь протокол Telnet включен и можно проверить открыт ли порт, который прослушивает PostgreSQL. Для этого в командной строке введем:

telnet <IP-address> <Port>

Где IP-address это IP-адрес сервера или его имя, а Port — номер порта, по которому будет производится подключение. Например,

C:\Users\Selectel>telnet 10.0.10.55 5432

Если подключение произошло успешно и порт открыт, будет отображаться пустая командная строка, а имя окна изменится на Telnet <IP-address>.

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

Управление PostgreSQL через командную строку

Чтобы управлять СУБД с помощью командной строки, необходимо открыть ее от имени администратора.

Далее перейти в каталог \bin, так как все основные инструменты PostgreSQL лежат именно в этой папке:

C:\Users\Selectel>cd C:\Program Files\PostgreSQL\15\bin

С помощью параметра -V можно проверить версию СУБД, которая была установлена:

C:\Program Files\PostgreSQL\15\bin>psql -V

Для корректного отображения русских символов в Windows 10 и 11 советуем сменить кодировку на Windows-1251:

C:\Program Files\PostgreSQL\15\bin>chcp 1251

Чтобы создать новую базу данных есть команда:

C:\Program Files\PostgreSQL\15\bin>createdb -U postgres SelectelDatabase

Где:
createdb — сама команда создания новой базы данных;
-U — параметр для указания имени пользователя;
postgres — имя пользователя;
SelecterDatabase — название новой базы данных.

Теперь проверим была ли создана новая база данных. Введем команду с параметром -l, который выводит список доступных баз данных:

C:\Program Files\PostgreSQL\15\bin>psql -U postgres -l

Получаем список:

Чтобы создать нового пользователя воспользуемся командой:

C:\Program Files\PostgreSQL\15\bin>createuser -U postgres TRex

Где:
postgres — пользователь с правами создавать других пользователей;
TRex — имя нового пользователя.

После этого необходимо ввести пароль пользователя postgres, который инициирует команду.

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

postgres=# ALTER ROLE “TRex” WITH PASSWORD 'password';

В команде вместо ‘password’ указать новый пароль.

При вводе SQL запросов важно не забывать ставить ; в конце запроса. Enter без ; в конце строки просто сделает переход на новую строку. Поэтому, если вы забыли ввести ; и нажали Enter, не нужно снова печатать всю строку. Достаточно ввести ; и запрос отправится на сервер.

Чтобы изменить права для новой роли, используется команда ALTER ROLE. Параметр CREATEDB дает право на создание базы данных:

postgres=# ALTER ROLE "TRex" CREATEDB;

Для просмотра ролей и их описания используется команда:

postgres=# \du

Теперь пользователь TRex имеет права на создание базы данных:

Для выхода из postgres можно использовать команду \q или exit.

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

C:\Program Files\PostgreSQL\15\bin>psql -U "postgres" "SelectelDatabase"

Создадим таблицу с цветами Colors, где первое поле idcolor будет автоматически заполняться порядковым номером, а второе поле namecolor содержит наименование цвета:

SelectelDatabase=# CREATE TABLE Colors
SelectelDatabase-# (idcolor serial PRIMARY KEY,
SelectelDatabase(# namecolor varchar(255) NOT NULL);

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

Ввод:
SelectelDatabase=# INSERT INTO Colors (namecolor) VALUES ('black');
Вывод:
INSERT 0 1

Ввод:
SelectelDatabase=# INSERT INTO Colors (namecolor) VALUES ('red');
Вывод:
INSERT 0 1

Ввод:
SelectelDatabase=# INSERT INTO Colors (namecolor) VALUES ('white');
Вывод:
INSERT 0 1

Ввод:
SelectelDatabase=# INSERT INTO Colors (namecolor) VALUES ('blue');
Вывод:
INSERT 0 1

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

SelectelDatabase=# SELECT * FROM Colors;

Таблица:

С помощью команды \dt можно посмотреть весь список существующих таблиц в базе данных:

SelectelDatabase=# \dt

Все таблицы:

Команда \d позволяет вывести информацию о конкретной таблице. Так, указав таблицу Colors, мы видим параметры с которыми создана данная таблица:

SelectelDatabase=# \d 'Colors'

Параметры таблицы:

Таблицу можно удалить с помощью функции DROP:

SelectelDatabase=# DROP TABLE Colors;

Query Tool для запросов в PostgreSQL

Query Tool — это редактор SQL запросов в pgAdmin 4 с удобным графическим интерфейсом. На русском редактор называется Запросник.

Открыть запросник можно, нажав на одну из указанных на скриншоте кнопок:

Появляется пустое стартовое окно запросника.

Покажем как работает запросник на примере. Для этого создадим таблицу из пяти полей, где будут указаны рейсы самолетов. Первое поле задается автоматически порядковым номером, второе — точка вылета, третье — точка прилета, четвертое — дата и время отправления, пятое — дата и время прибытия самолета.

Вводим запрос:

CREATE TABLE "flight"
    (
   	 idflight SERIAL PRIMARY KEY,
   	 Apoint VARCHAR(255) NOT NULL,
   	 Bpoint VARCHAR(255) NOT NULL,
   	 Atime timestamp NOT NULL,
   	 Btime timestamp NOT NULL
    );
INSERT INTO "flight" (Apoint, Bpoint, Atime, Btime) VALUES
    ('Saint-Petersburg', 'Novosibirsk', '2022-11-24 10:05:00', '2022-11-24 14:15:00'),
    ('Saint-Petersburg', 'Samara', '2022-11-21 16:45:00', '2022-11-21 18:00:00'),
    ('Saint-Petersburg', 'Moscow', '2022-11-20 13:20:00', '2022-11-20 14:25:00'),
    ('Saint-Petersburg', 'Netherlands', '2022-11-23 02:30:00', '2022-11-23 05:15:00'),
    ('Saint-Petersburg', 'Tashkent', '2022-11-27 06:25:00', '2022-11-27 10:25:00');

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

SELECT * FROM "flight";

Получаем вот такую таблицу с рейсами:

С использованием SQL запроса можно отсортировать данные в таблице по определенным условиям. Например укажем, что дата вылета должна быть после полуночи 22 ноября 2022 года и точкой прилета не должен быть Ташкент.

SELECT * FROM "flight" WHERE
    "atime" > '2022-11-22 00:00:00' AND
    "bpoint" != 'Tashkent';

Выполнив запрос, получим два рейса, которые подходят под заданные условия:

Заключение

В этой инструкции мы рассмотрели, как установить PostgreSQL на устройство с десктопной версией ОС Windows 10 и 11, а также:

  • установили дополнительные приложения с помощью утилиты Stack Builder;
  • создали правила файрвола для доступа к PostgreSQL по сети;
  • поработали с СУБД через командную строку Windows;
  • установили и русифицировали pgAdmin 4;
  • рассмотрели работу запросника Query Tool.