PostgreSQL — свободная объектно-реляционная система управления базами данных (СУБД). 

PostgreSQL от Бегета — готовая к работе и полностью настроенная СУБД на вашем виртуальном сервере с удобным веб-интерфейсом для работы со структурой БД и данными.

Состав приложения

  • Ubuntu 22.04
  • PostgreSQL 14.4
  • Nginx 1.18.0
  • Adminer Web Ui

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

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

  • Пароль для административного пользователя СУБД postgres
  • Домен, который будет использоваться для доступа к веб-интерфейсу Adminer.
    Если у вас пока нет домена в нашей системе, то мы предоставим вам бесплатный технический домен .beget.app с предустановленным SSL сертификатом
  • Контактный e-mail администратора для установки SSL-сертификата

После установки и развертывания пакета PostgreSQL вы можете начать работу.

Работа с веб-интерфейсом Adminer

PostgreSQL Adminer interface

Для перехода в Adminer используйте кнопку доступа к установленному ПО в панели или откройте адрес: https://ваш-домен/psql.php

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

  • Сервер: localhost
  • Имя пользователя: postgres по-умолчанию или другой созданный вами позднее пользователь
  • Пароль: заданный вами при создании сервера (он также дублируется вам на email), или другой пароль, заданный вручную позднее
  • База данных: требуемая вам база данных, можно оставить пустым

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

Работа с PostgreSQL из вашего приложения

Работа с установленной СУБД из вашего приложения не отличается от работы с локально развернутой базой данных. Для подключения используйте следующие реквизиты:

  • Сервер: Публичный или приватный IP-адрес вашего сервера ИЛИ указанное вами при установке доменное имя
  • Порт: 5432
  • Имя пользователя: postgres по-умолчанию или другой созданный вами позднее пользователь
  • Пароль: заданный вами при создании сервера (он также дублируется вам на email), или другой пароль, заданный вручную позднее
  • База данных: postgres по-умолчанию или созданная вами позднее
Пример кода для подключения к PostgreSQL на PHP
<?php
$host     = 'my.ip.address'; // поменяйте на IP-адрес вашего сервера или IP
$db       = 'postgres';      // имя БД
$user     = 'postgres';      // имя пользователя
$password = 'my.password';   // поменяйте на ваш пароль

try {
    $dsn = "pgsql:host=$host;port=5432;dbname=$db;";

    // выполняем подключение к PostgreSQL
    $pdo = new PDO($dsn, $user, $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);

    if ($pdo) {
        echo "Успешное подключение к БД '{$db}'!", PHP_EOL;
    }
} catch (PDOException $e) {
    die($e->getMessage());
} finally {
    if ($pdo) {
        $pdo = NULL;
    }
}

Удачной работы!

Частые вопросы по PostgreSQL

Как создать нового пользователя в PostgreSQL?

Способ 1. Через подключение к серверу по SSH:

  • Подключитесь к серверу по SSH: ssh root@server_ip
  • Аутентифицируйтесь как системный пользователь postgres: su postgres
  • Используем утилиту createuser для создания пользователя:
    createuser username -s -P
    где username - желаемое имя пользователя
Обратите внимание!
Пользователь создается с правами суперпользователя. Вы можете опустить опцию -s для создания обычного пользователя.

Способ 2. Через веб-интерфейс Adminer

  • Перейдите в Adminer через ссылку в панели управления или по адресу https://ваш-домен/psql.php
  • Слева в меню нажмите на ссылку SQL-запрос
  • Используйте следующий запрос для создания пользователя с правами суперпользователя :
    CREATE USER test with ENCRYPTED PASSWORD 'mypassword' SUPERUSER
    где test - имя пользователя, а mypassword - пароль
Как добавить внешний доступ к БД PostgreSQL (чтобы например БД была доступна с виртуального хостинга)?
Обратите внимание!
По-умолчанию для устанавливаемой нами БД разрешен внешний доступ и отдельное его добавление не требуется

Вам необходимо добавить в конец файла /etc/postgresql/14/main/pg_hba.conf следующее содержимое:

host    all    all    0.0.0.0/0    md5

где вместо 0.0.0.0/0 вы можете подставить конкретный адрес, для которого будет разрешено подключение

В конце вам нужно будет перезагрузить сервис postgresql:
systemctl reload postgresql@14-main.service

Как перезапустить сервис postgresql, Adminer?

PostgreSQL:

  • Выполните команду systemctl restart postgresql@14-main.service

Adminer:

  • Выполните команду systemctl restart php8.1-fpm.service
  • Выполните команду systemctl restart nginx.service
Как сделать резервную копию БД?

Проще всего выполнить резервное копирование с помощью утилиты pg_dump:

  • Подключитесь к серверу по SSH: ssh root@server_ip
  • Перейдите в директорию /var/tmp
  • Аутентифицируйтесь как системный пользователь postgres: su postgres
  • Выполните команду для создания дампа: pg_dump postgres > backup.sql
    где postgres - имя резервируемой БД, backup.sql - желаемое имя файла с дампом
Где располагаются конфигурационные файлы PostgreSQL?

Конфигурационные файлы находятся в директории
/etc/postgresql/14/main

Где располагаются файлы с данными PostgreSQL?

Данные БД располагаются в директории
/var/lib/postgresql/14/main

PostgreSQL
Конфигурация:

Бесплатно с каждым сервером:


Автоматический бэкап данных
Круглосуточный мониторинг
Почтовая система
DNS-хостинг
Приватные сети
22
Категории
Для разработчиков