Установка и работа с PostgreSQL в WSL

Установка и работа с PostgreSQL в WSL

В этой заметке я опишу как установить и начать использовать PostgreSQL в Windows Subsystem for Linux (WSL) для локальной разработки.

Если у вас еще не включен WSL2, то посмотрите как это сделать в этой заметке Установка WSL2 на Windows 10.

Я буду устанавливать Postgres на Ubuntu 20.04.

Итак запускаем Убунту в WSL и приступаем.

Установка PostgreSQL в WSL2

Установка Postgres проста и состоит из нескольких шагов:

1. Для начала обновим все пакеты Убунту командой:

sudo apt update && sudo apt upgrade

2. Устанавливаем PostgreSQL командой:

sudo apt install postgresql postgresql-contrib

3. Проверяем успешность установки посмотрев версию командой:

psql --version

Проверка версии установленной PostgreSQL

На этом, собственно, установка завершена.

После этого можно запустить сервер базы данных командой:

sudo service postgresql start

В терминале должно появится сообщение об успешном запуске:

Успешный запуск PostgreSQL на WSL2

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

sudo service postgresql status

sudo service postgresql stop

Создание пользователя, БД и подключение к PostgreSQL в WSL2

Проверяем статус sudo service postgresql status и при необходимости запускаем Postgres командой sudo service postgresql start.

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

Для этого воспользуемся консольным клиентом psql, с помощью которого мы можем из консоли взаимодействовать с сервером PostgreSQL. Запускаем его командой:

sudo -u postgres psql

Дальше вводим команды (вводя команды в psql не забудьте точки с запятой в конце каждой команды):

create user ИМЯ password 'ПАРОЛЬ';

Например я создал пользователя django со своим паролем.

Далее создадим базу данных (например blog) и сделаем нового пользователя (в нашем случае django) ее владельцем, для этого выполняем команду:

create database blog owner django;

Создания пользователи и БД PostgreSQL на WSL

Нажмите Ctrl + d чтобы выйти из psql.

Готово, теперь вы можете использовать postgres в ваших проектах.

Подключение к PostgreSQL сторонней программой

Мне удобней работать с БД с помощью графического интерфейса, для этого я использую DBeaver или DataGrip (он есть как отдельной программой, так и в виде строенного модуля в других IDE от JetBrains).

Для подключения сторонней программой нужно учитывать один момент. По умолчанию из соображений безопасности PostgreSQL разрешаются только локальные подключения. Чтобы это исправить и подключиться к БД снаружи нам необходимо отредактировать 2 файла:

1. Файл postgresql.conf – файл основных настроек. В Ubuntu он располагается в /etc/postgresql/ВЕРСИЯ_БД/main/postgresql.conf, в нашем случае версия 12, поэтому откроем его с помощью редактора nano вот так:

sudo nano /etc/postgresql/12/main/postgresql.conf

нам нужно найти строчку

#listen_addresses = ‘localhost’

И заменить ее на

listen_addresses = ‘*’

2. Второй файл это pg_hba.conf – файл с настройками аутентификации. При подключении клиента к серверу из этого файла выбирается первая строчка соответствующая соеденению по четырем параметрам:

  • Типу соединения
  • Имени БД
  • Имени пользователя
  • IP адреу клиента

Откроем файл с помощью nano:

sudo nano /etc/postgresql/12/main/pg_hba.conf

Для нашего пользователя и БД допишем в конец файла такую строку:

host      blog       django  all          md5

И сохраним файл.

Строка, которую мы добавили, означает следующее: Сетевые соединения (host) к базе данных (blog) под пользователем Django с любых ip адресов должны проверяться методом md5.

Дальше заходим в утилиту psql:

sudo -u postgres psql

И для обновления конфигурации выполняем следующую команду:

select pg_reload_conf();

Или можно перезагрузить сервер БД командой:

sudo service postgresql restart

Все, теперь пробуем подключится к БД с помощью, например, DBeaver. Введите данные подключения (имя базы, пользователь и пароль), которые мы задали выше:

Подключение к PostgreSQL из DBeaver

Теперь все готово, можно использовать PostgreSQL при разработке своих проектов smiley

Хостинг для ваших проектов

Возможно, вас заинтересует

Где скачать Chromium для Windows

Занимаясь веб разработкой, для ее удобства, приходится иметь несколько браузеров. Основным браузером …