ВОЙТИ
    opened image

    ​​​​​​​

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

    В этой статье мы рассмотрим процесс добавления дополнительного сервера базы данных MySQL в HestiaCP, используя Docker контейнер, и настраивание доступа к нему через phpMyAdmin.

     

    Для этого мы будем использовать Docker для развертывания контейнера с MySQL, настроим его параметры и интегрируем новый сервер базы данных в HestiaCP. После этого мы добавим конфигурационные изменения в phpMyAdmin, чтобы обеспечить удобный доступ и управление базами данных на новом сервере. Подробные инструкции и скриншоты помогут вам шаг за шагом выполнить все необходимые действия, даже если у вас минимальный опыт работы с Docker и HestiaCP.

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

     

    Установка Docker и Docker Compose

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

     

    Устанавливаем необходимые зависимости:

    apt-get install ca-certificates curl gnupg
    
    install -m 0755 -d /etc/apt/keyrings

     

    Добавляем репозиторий Docker:

    
     
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    
    chmod a+r /etc/apt/keyrings/docker.gpg
    
    echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

     

    Обновляем репозитории и устанавливаем Docker:

    
     
    ​​​​​​​apt-get update 
    apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
    systemctl enable docker

     

    Устанавливаем Docker Compose:

    
     
    curl -SL https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
    
    ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    
    chmod +x /usr/local/bin/docker-compose

     

     

    Запускаем docker контейнер с базой данных mysql:5.7.44:

     

    docker run --name mysql-5.7 -v /var/lib/mysql-5.7:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=MySQL_root_password -p 3310:3306 -d mysql:5.7.44-oraclelinux7

     

    Здесь создается сервер базы данных с папкой данных /var/lib/mysql-5.7 , пользовательским паролем root - MySQL_root_password , перенаправление порта - будет прослушивать порт 3310. mysql:5.7.44-oraclelinux7 - это один из образов, которые можно найти на docker hub .

     

    Так же можно использовать Docker Compose.

     

    Создадим файл docker-compose.yml:

     

    vim /root/docker_mysql-5.7/docker-compose.yml

     

    В него добавим следующий код:

     

    version: '3.8'
    services:
      mysql-5.7:
        image: mysql:5.7.44-oraclelinux7
        container_name: mysql-5.7
        ports:
          - "3310:3306"
        environment:
          MYSQL_ROOT_PASSWORD: 6mMhekkK7z0qhXxI
        volumes:
          - /var/lib/mysql-5.7:/var/lib/mysql
        restart: always

     

     

     

    Добавляем доступ к базе данных из панели HestiaCP.

     

    v-add-database-host mysql 127.0.0.1 root MySQL_root_password '' '' '' 3310

     

    Создается сервер баз данных с хостом 127.0.0.1


    На скриншоте показано, как создать базу данных в палитре HestiaCP на новом сервере.

     

    В файл /etc/phpmyadmin/conf.d/01-localhost.php добавляем:

    $i++;
    
    // Второй сервер: новый MySQL сервер на порту 3310
    $cfg['Servers'][$i]['host'] = '172.20.0.1';
    $cfg['Servers'][$i]['port'] = '3310';
    $cfg['Servers'][$i]['auth_type'] = 'cookie';
    
    
    // Настройки завершения сеанса
    $cfg['LoginCookieValidity'] = 1440;
    $cfg['LoginCookieStore'] = 0;
    $cfg['ShowPhpInfo'] = true;
    
    // Дополнительные настройки интерфейса
    $cfg['ShowChgPassword'] = true;
    $cfg['ShowDbStructureCharset'] = true;
    $cfg['ShowDbStructureCreation'] = true;
    $cfg['ShowDbStructureLastUpdate'] = true;
    $cfg['ShowDbStructureLastCheck'] = true;
    
    // Настройки памяти и времени выполнения
    $cfg['MemoryLimit'] = '512M';
    $cfg['ExecTimeLimit'] = 300;
    $cfg['UploadDir'] = '';
    $cfg['SaveDir'] = '';

     

    где $cfg['Servers'][$i]['host'] = '172.20.0.1'; это IP на котором приподнят контейнер, или можно использовать 127.0.0.1

     

    В зависимости от того, какой IP будете использовать, замените IP в этой команде:

     

    v-add-database-host mysql 172.20.0.1 root MySQL_root_password '' '' '' 3310

     

    Заключение

    ​​​​​​​
    Интеграция дополнительного сервера базы данных в HestiaCP с помощью Docker и phpMyAdmin значительно повышает надежность и производительность вашей веб-инфраструктуры. В ходе этой статьи мы пошагово рассмотрели процесс создания Docker-контейнера с MySQL и его интеграцию в HestiaCP, а также настройку phpMyAdmin для удобного доступа к базам данных на новом сервере.

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

    Благодаря HestiaCP и Docker вы получаете гибкость и контроль над вашими базами данных, что способствует более эффективному использованию ресурсов и повышению общей отказоустойчивости системы. Не забывайте регулярно обновлять ваши инструменты и следить за новыми возможностями HestiaCP, чтобы оставаться в курсе последних технологических решений для веб-хостинга.