Pull to refresh

Разворачиваем PostgreSQL на VPS сервере за 5 минут

Level of difficultyMedium
Reading time3 min
Views4.3K

Привет, Хабр. Сегодня я расскажу вам, как развернуть мощную и супер популярную SQL базу данных PostgreSQL. Для решения этой задачи существует множество способов, но я буду говорить о способе разворачивания при помощи Docker контейнера.

Для старта вам необходимо будет обзавестись VPS сервером (виртуальным или выделенным) с линуксом. Я обычно предпочитаю Ubunta, так что будем рассматривать на ее примере.

После покупки вам предложат способ входа. Обычно это SSH – значит и мы возьмем его за основу.

Допустим данные для входа это:

Hidden text

IPv4-адрес сервера: 000.0.000.000

Пользователь: root

Пароль: ZZujF38P$LcpWWZh

  1. Открываем командную строку

  2. Вводим команду: ssh root@000.0.000.000

  3. Подтверждаем сохранение SSH ключа командой yes

  4. Вводим пароль (при вставке пароль не отображается, что является нормальной защитной мерой, затем нажимаем ENTER)

После успешного входа, вас поприветствует Ubuntu, что будет свидетельствовать о том, что сервер работает и доступ к нему есть.

Обновляем Ubuntu и догружаем пакеты:

sudo apt update -y 
sudo apt upgrade -y

Флаг -y используется как согласие на установку по умолчанию.

Установите Docker, если он еще не установлен:

sudo apt install -y docker.io

Запустите службу Docker:

sudo systemctl start docker

Включите автозапуск Docker при загрузке системы:

sudo systemctl enable docker

Теперь нам необходимо создать контейнер postgres.

Сейчас я введу команду, которую можно использовать для создания Docker контейнера, а после уже подробно поясню за что она отвечает.

sudo docker run -d --name my_db_postgres -e POSTGRES_PASSWORD=083Hdwd3 -e POSTGRES_USER=admin -e POSTGRES_DB=my_first_db -p 5432:5432 postgres

После ввода дожидаемся пока все загрузится и установится. Для того чтоб посмотреть на запущенные Docker контейнеры вводим:

sudo docker ps

Разбор команды для создания контейнера

Теперь давайте разберемся, что сделала наша команда:

  • sudo docker run -d: запускает новый контейнер в фоновом режиме (detached mode).

  • --name my_db_postgres: задает имя контейнера для удобства управления.

  • --restart always: автоматически перезапускает контейнер при сбое или перезапуске системы.

  • -e POSTGRES_PASSWORD=083Hdwd3: устанавливает пароль для пользователя Postgres.

  • -e POSTGRES_USER=admin: создает пользователя с именем admin.

  • -e POSTGRES_DB=my_first_db: создает базу данных с именем my_first_db.

  • -p 5432:5432: пробрасывает порт 5432 из контейнера на порт 5432 хоста, что позволяет подключаться к базе данных снаружи.

Подключение к базе данных

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

  • Запускаем DBeaver.

  • Нажимаем на новое соединение (или комбинация клавиш CTRL + SHIFT + N).

  • Выбираем PostgreSQL.

  • Вводим данные для подключения (хост – это IP адрес сервера, а остальное, думаю, понятно).

  • Жмем на «Тест соединения».

  • Если все ок – жмем на «Готово».

Запуск и указание на "Новое соединение"
Запуск и указание на "Новое соединение"
Выбираем PostgreSQL
Выбираем PostgreSQL
Ввод данных для авторизации, тест и сохранение авторизации.
Ввод данных для авторизации, тест и сохранение авторизации.

Заключение

Таким образом, буквально за пару минут мы подняли серьезную базу данных, которую можно будет использовать в большом количестве проектов, начиная от Telegram ботов и заканчивая большими сайтами. Я, например, практически не пользуюсь другими SQL в своих проектах (разве что в SQLITE в совссем маленьких проектах).

Если вам будет интересна эта тема в формате программного взаимодействия с PostgreSQL (например, через python3, модуль asyncpg), дайте знать. С удовольствием поделюсь своими наработками.

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

Спасибо за внимание!

Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
Total votes 18: ↑5 and ↓13-8
Comments13

Articles