PostgreSQL

Внимание!

Zone не предоставляет официальную поддержку PostgreSQL! PostgreSQL – это неуправляемая услуга.
Это руководство предназначено для опытных пользователей, которые знакомы с администрированием PostgreSQL и хорошо знающих оболочку Linux. В руководстве рассматривается только запуск услуги PostgreSQL на платформе Zone (PoC). Дальнейшее администрирование, управление пользователями и базами данных, резервное копирование и т.д. входит в обязанности пользователя!

1. Войдите на виртуальный сервер с помощью SSH

Подключение через протокол SSH.

2. Создайте базу данных PostgreSQL

initdb -D $HOME/postgresql
echo "listen_addresses = '$(vs-loopback-ip -4)'" >> $HOME/postgresql/postgresql.conf
echo "unix_socket_directories = '$HOME/tmp'" >> $HOME/postgresql/postgresql.conf

3. Создайте файл конфигурации PM2

Файл PM2 необходим для автоматического запуска службы PostgreSQL. В имени файла важно окончание .config.js!

Откройте файл ~/postgresql/postgresql.config.js и добавьте:

module.exports = {
  apps: [
    {
      name: "postgresql",
      script: "/opt/zse/bin/postgres",
      args: "-D " + process.env.HOME + "/postgresql/",
      exec_mode: "fork", // Ensures it runs in the background
      autorestart: true, // Restart if it crashes
      watch: false, // PM2 will not watch for file changes
      max_restarts: 10, // Maximum number of restarts before giving up
    },
  ],
};

4. Добавить приложение PM2 в панель управления Мой Zone

В управлении веб-хостингом в панели Мой Zone выберите PM2 (Node.js), а затем Установить новое приложение.
Введите Postgresql в поле Имя приложения.
В поле Скрипт или PM2 .JSON введите: postgresql/postgresql.config.js.
Максимальное использование памяти: перетащите ползунок на максимальное значение.
Нажмите кнопку Сохранить.

Подождите 3-4 минуты, пока в pm2 list в shell не появится статус приложения postgresql: online.

5. Установите пароль пользователя root!

Очень важно!

По умолчанию пользователь root не имеет пароля, и внешний пользователь может получить доступ к вашему серверу PostgreSQL!
Выберите длинный (не менее 14 символов) и надежный пароль и храните его в безопасности!

Имя пользователя root – это ваше имя пользователя SSH в форме virtXXX, которое вы видите при запуске shell: whoami

Хост сервера PostgreSQL – это ваш loopback IP-адрес, который вы можете увидеть, если выполните команду shell: vs-loopback-ip -4

Чтобы установить пароль, войдите на сервер PostgreSQL:

psql -h $(vs-loopback-ip -4) -U $(whoami) -d postgres

Замените new_password на надежный пароль и запуст

ALTER USER SESSION_USER WITH PASSWORD 'new_password';

Затем удалите метод “trust” из файла pg_hba.conf (без него пароль не будет запрашиваться):

sed -i 's/trust$/md5/g' ~/postgresql/pg_hba.conf

Перезапустите сервер postgresql:

pm2 restart postgresql

Убедитесь, что теперь при подключении вам будет предложено ввести пароль!

psql -h $(vs-loopback-ip -4) -U $(whoami) -d postgres

6. Примечания

  • NB! На сервере ZoneOS доступна только одна версия PostgreSQL (в настоящее время 14.5), и она может измениться с обновлением ZoneOS без предварительного уведомления!
  • Нелишним будет регулярно создавать резервные копии базы данных самостоятельно, поскольку резервное копирование файловой системы Zone по умолчанию может быть не идеальным.
  • Если вы хотите использовать PostgreSQL с PHP, вам нужно активировать расширение PostgreSQL в разделе Расширения PHP в панели управления Мой Zone.
Updated on 24. Oct 2024
Was this article helpful?

Related Articles