Установка баз данных · 12 min read · Sep 26, 2025

Как установить Percona XtraDB Cluster на Debian 11

Percona XtraDB Cluster — это полностью открытое решение для кластеризации баз данных для MySQL. Оно позволяет создать надежное развертывание MySQL-сервера с высокой доступностью, обеспечивающее высокую производительность. Последняя версия Percona XtraDB Cluster — 8.0, которая полностью совместима с MySQL Server Community Edition 8.0.

Percona XtraDB Cluster предоставляет такие функции, как синхронная репликация, многопоточность репликации, автоматическое развертывание узлов, автоматическая конфигурация SSL-шифрования и оптимизированная производительность.

Percona XtraDB Cluster обеспечивает высокую доступность вашего сервера базы данных, предоставляет линейную масштабируемость и предотвращает простои и потерю данных.

В этом руководстве вы установите и настроите кластер MySQL через Percona XtraDB Cluster (PXC) на серверах Debian 11. Вы установите Percona XtraDB Cluster — открытое решение для кластера MySQL — на несколько серверов Debian, а затем настроите кластер MySQL для включения репликации между несколькими серверами MySQL.

Предварительные требования

Чтобы завершить это руководство, вам потребуется два или более сервера с установленным Debian 11. Также у вас должен быть пользователь без прав root с правами администратора sudo/root на всех ваших серверах.

В этом примере используются три сервера Debian 11 со следующими данными:

Hostname       IP Address  
--------------------------  
pxc01       192.168.5.15  
pxc02       192.168.5.16  
pxc03       192.168.5.17

Когда все серверы будут готовы, вы можете начать установку Percona XtraDB Cluster.

Настройка хостов и брандмауэра

Сначала вам нужно настроить файл /etc/hosts на каждом сервере, чтобы убедиться, что каждое имя хоста разрешается в правильный IP-адрес, затем настройте брандмауэр, чтобы открыть некоторые порты, которые будет использовать Percona XtraDB Cluster. Это необходимо сделать на всех серверах.

Ниже приведены данные о портах Percona XtraDB Cluster, которые необходимо открыть в вашем брандмауэре.

Ports   Used for  
---------------------------  
3306    Соединение клиента MySQL и SST (State Snapshot Transfer)  
4444    SST через Percona XtraBackup  
4567    трафик репликации write-set (по TCP) и многокастовая репликация (по TCP и UDP)  
4568    IST (Incremental State Transfer)

Для начала откройте конфигурационный файл ‘/etc/hosts’ с помощью следующего редактора nano.

sudo nano /etc/hosts

Добавьте следующие строки в файл и обязательно измените данные IP-адресов и имен хостов на ваши.

192.168.5.15  pxc01  
192.168.5.16  pxc02  
192.168.5.17  pxc03

Сохраните и закройте файл, когда закончите.

Теперь введите следующую команду ‘apt install’, чтобы установить пакет брандмауэра ufw. Когда будет предложено, введите y для подтверждения и нажмите ENTER для продолжения.

sudo apt install ufw

установить ufw

После установки ufw выполните следующую команду ufw, чтобы добавить службу OpenSSH. Это обеспечит, что вы не будете заблокированы на своем сервере. Если у вас есть пользовательский порт SSH, вы можете просто изменить параметр ‘OpenSSH’ на ваш порт SSH.

sudo ufw allow OpenSSH

Далее введите следующую команду ufw, чтобы открыть некоторые порты, которые будет использовать Percona XtraDB Cluster. Обязательно измените подсеть внутреннего IP-адреса на вашу текущую среду.

sudo ufw allow from 192.168.5.1/24 proto tcp to any port 3306  
sudo ufw allow from 192.168.5.1/24 proto tcp to any port 4444  
sudo ufw allow from 192.168.5.1/24 proto tcp to any port 4567  
sudo ufw allow from 192.168.5.1/24 proto udp to any port 4567  
sudo ufw allow from 192.168.5.1/24 proto tcp to any port 4568

настройка ufw

После этого запустите и включите брандмауэр ufw, введя команду ‘ufw enable’. Когда будет предложено, введите y для подтверждения и нажмите ENTER для продолжения. Вывод ‘Брандмауэр активен и включен при запуске системы’ подтверждает, что брандмауэр ufw работает и будет запускаться автоматически при запуске системы.

sudo ufw enable

Наконец, проверьте статус брандмауэра ufw, используя следующую команду.

sudo ufw status

Вы должны получить вывод, подобный этому.

проверка ufw

Установка Percona XtraDB Cluster

В этом разделе вы добавите и настроите репозиторий Percona XtraDB для дистрибутивов на базе Debian. Затем вы установите Percona XtraDB на все ваши серверы.

Также во время установки вам будет предложено установить пароль root для MySQL и настроить плагин аутентификации по умолчанию для Percona XtraDB Cluster. Наконец, вы проверите установку Percona XtraDB Cluster, войдя в оболочку MySQL через пользователя root MySQL и пароль, который вы настроили.

Для начала введите следующую команду apt, чтобы установить некоторые основные зависимости. Введите y, когда будет предложено, и нажмите ENTER для продолжения.

sudo apt install wget gnupg2 lsb-release curl -y

установить основные зависимости

Далее загрузите пакет репозитория Percona XtraDB с помощью следующей команды wget. После загрузки установите его с помощью команды ‘dpkg -i‘ ниже.

wget -q https://repo.percona.com/apt/percona-release_latest.generic_all.deb  
sudo dpkg -i percona-release_latest.generic_all.deb

добавить репозиторий percona xtradb

Теперь обновите и обновите индекс пакетов Debian и выполните команду ‘percona-release‘, чтобы настроить репозиторий Percona XtraDB Cluster. В этом примере вы включите пакет Percona XtraDB Cluster v8.0, который эквивалентен серверу MySQL v8.0.

sudo apt update  
sudo percona-release setup pxc80

Обновите репозиторий.

обновить репозиторий

Включите репозиторий Percona XtraDB Cluster v8.0.

включить percona 80

После включения репозитория введите команду ‘apt install‘, чтобы установить пакет ‘percona-xtradb-cluster‘ на ваши системы. Введите y, чтобы подтвердить установку, и нажмите ENTER для продолжения.

sudo apt install percona-xtradb-cluster

установить percona extradb

Во время установки Percona XtraDB Cluster вам будет предложено установить пароль root для MySQL.

Введите новый надежный пароль и выберите OK.

настройка пароля

Повторите свой пароль и снова выберите OK.

Для плагина аутентификации MySQL по умолчанию выберите опцию ‘Использовать шифрование пароля (РЕКОМЕНДУЕТСЯ)‘ и выберите OK.

настройка пароля

Теперь Percona XtraDB Cluster должен быть установлен, и он будет запущен и включен автоматически.

Когда Percona XtraDB Cluster установлен, введите следующую команду, чтобы проверить статус службы MySQL.

sudo systemctl is-enabled mysql  
sudo systemctl status mysql

Вывод ‘enabled‘ подтверждает, что сервер MySQL включен и будет запускаться автоматически при запуске системы. А вывод ‘active (running)‘ подтверждает, что сервер MySQL работает.

настройка аутентификации

Чтобы проверить ваш пароль root MySQL, войдите в оболочку MySQL через команду ‘mysql‘ ниже. Когда будет предложено ввести пароль, введите свой пароль root MySQL.

sudo mysql -u root -p

При успешном входе вы должны получить оболочку MySQL.

вход в mysql

Вы также можете проверить статус вашего сервера MySQL, введя следующий запрос.

sudo systemctl status mysql

Вы должны получить вывод, подобный этому - Вы вошли в MySQL 8.0 Percona XtraDB Cluster.

проверка mysql

На данный момент вы настроили файл /etc/hosts вашей системы, установили и настроили брандмауэр ufw, а также установили Percona XtraDB Cluster MySQL 8.0 на всех ваших серверах. Вы готовы начать настраивать Percona XtraDB Cluster.

Остановка службы Percona XtraDB Cluster

Прежде чем вы начнете настраивать Percona XtraDB Cluster, вы должны убедиться, что сервер MySQL остановлен.

Введите следующую команду утилиты systemctl, чтобы остановить сервер MySQL на ваших серверах. Затем проверьте статус сервера MySQL, чтобы убедиться, что служба остановлена.

sudo systemctl stop mysql

Вывод ‘inactive (dead)‘ подтверждает, что сервер MySQL остановлен.

Теперь вы можете начать инициализацию Percona XtraDB Cluster для первого узла ‘pxc01‘.

Копирование сертификатов SSL/TLS

Percona XtraDB Cluster имеет два типа шифрования трафика: соединение клиент-сервер и трафик репликации. В последней версии Percona XtraDB Cluster v8.0 весь трафик репликации включен по умолчанию для повышения безопасности.

Во время установки Percona XtraDB Cluster сертификаты SSL/TLS автоматически создаются в каталоге данных ‘/var/lib/mysql‘. Введите следующую команду, чтобы проверить список сертификатов SL/TLS в каталоге ‘/var/lib/mysql‘.

ls /var/lib/mysql/*.pem

Вы должны увидеть три типа сертификатов SSL/TLS: клиентский, серверный и CA.

Чтобы создать и настроить Percona XtraDB Cluster, все серверы должны иметь одинаковые сертификаты CA и сервера. Поэтому вам нужно скопировать сертификаты CA и сервера по умолчанию с ‘pxc01‘ на ‘pxc02‘ и ‘pxc03‘.

На сервере ‘pxc01‘ перейдите в рабочий каталог ‘/var/lib/mysql’.

cd /var/lib/mysql

Введите следующую команду scp, чтобы скопировать сертификаты CA и сервера на серверы ‘pxc02‘ и ‘pxc03‘.

scp server-key.pem server-cert.pem ca.pem root@pax02:/var/lib/mysql  
scp server-key.pem server-cert.pem ca.pem root@pax03:/var/lib/mysql

Вы получите вывод, подобный этому - Копирование сертификатов CA и сервера с ‘pxc01‘ на серверы ‘pxc02‘ и ‘pxc03‘.

Скопировав сертификаты SSL/TLS, вы можете инициализировать Percona XtraDB Cluster.

Инициализация Percona XtraDB Cluster на первом узле

В этом разделе вы инициализируете Percona XtraDB Cluster с первого узла сервера ‘pxc01‘. Убедитесь, что вы выполняете следующие шаги на сервере ‘pxc01‘.

Откройте конфигурационный файл MySQL ‘/etc/mysql/my.cnf’ с помощью следующей команды редактора nano.

sudo nano /etc/mysql/my.cnf

Добавьте следующие строки в файл. Обязательно измените значение ‘wsrep_cluster_address‘ на IP-адреса всех ваших серверов. Также в ‘wsrep_node_address‘ вы должны ввести IP-адрес ‘pxc01‘.

[mysqld]  
datadir=/var/lib/mysql  
user=mysql  
  
# Путь к библиотеке Galera  
wsrep_provider=/usr/lib/libgalera_smm.so  
  
# URL-адрес подключения к кластеру содержит IP-адреса pxc01, pxc02 и pxc03  
wsrep_cluster_address=gcomm://192.168.5.15,192.168.5.16,192.168.5.17  
  
# Для правильной работы Galera формат binlog должен быть ROW  
binlog_format=ROW  
  
# Использование движка хранения MyISAM не рекомендуется.  
default_storage_engine=InnoDB  
  
# Этот режим блокировки автоинкремента InnoDB является обязательным для Galera  
innodb_autoinc_lock_mode=2  
  
# Адрес узла 1  
wsrep_node_address=192.168.5.15  
  
# Метод SST  
wsrep_sst_method=xtrabackup-v2  
  
# Имя кластера  
wsrep_cluster_name=pxc_cluster  
  
#pxc_strict_mode допустимые значения: DISABLED, PERMISSIVE, ENFORCING, MASTER  
pxc_strict_mode=ENFORCING  
  
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"  
  
[sst]  
encrypt=4  
ssl-key=server-key.pem  
ssl-ca=ca.pem

Сохраните и закройте файл ‘/etc/mysql/my.cnf‘, когда закончите.

mysql конфигурация pxc01

Далее выполните следующую команду systemctl для загрузки и инициализации Percona XtraDB Cluster.

Служба ‘mysql@bootstrap‘ — это служба systemd, которая используется для запуска Percona XtraDB Cluster, и она отличается от службы ‘mysql‘. При создании сервера MySQL с помощью Percona XtraDB Cluster первый узел должен быть запущен с помощью службы ‘mysql@bootstrap‘.

systemctl start [email protected]

Когда закончите, введите следующую команду mysql, чтобы войти в оболочку MySQL. Введите пароль root вашего сервера MySQL.

sudo mysql -u root -p

Введите следующий запрос MySQL, чтобы убедиться, что кластер инициализирован.

show status like 'wsrep%';

Вы должны получить вывод, подобный этому - в разделе ‘wsrep_cluster_size‘ вы увидите значение ‘1‘, что означает, что Percona XtraDB Cluster инициализирован с 1 сервером. Вы также получите IP-адреса серверов в разделе ‘wsrep_incoming_address‘. Наконец, узел находится в состоянии Synced, что означает, что он полностью подключен и готов к репликации write-set.

кластер включен

С инициализированным первым узлом вы готовы добавить второй и третий узлы ‘pxc02‘ и ‘pxc03‘ в Percona XtraDB Cluster.

Добавление узлов 2 и 3 в кластер

Добавление новых узлов в Percona XtraDB Cluster похоже на инициализацию первого узла. Ниже приведены простые шаги, которые вам нужно выполнить:

  • Измените конфигурационный файл MySQL ‘/etc/mysql/my.cnf’.
  • Запустите сервер MySQL.
  • Войдите в оболочку MySQL и проверьте Percona XtraDB Cluster.

Теперь давайте начнем добавлять ‘pxc02‘ и ‘pxc03‘ в Percona XtraDB Cluster.

Добавление узла pxc02

Войдите на сервер ‘pxc02‘ и откройте конфигурационный файл MySQL ‘/etc/mysql/my.cnf‘ с помощью следующей команды редактора nano.

sudo nano /etc/mysql/my.cnf

Добавьте следующие строки в файл и обязательно измените значение ‘wsrep_cluster_address‘ на IP-адреса всех ваших серверов. Также в ‘wsrep_node_address‘ вы должны ввести IP-адрес ‘pxc02‘.

[mysqld]  
  
datadir=/var/lib/mysql  
user=mysql  
  
# Путь к библиотеке Galera  
wsrep_provider=/usr/lib/libgalera_smm.so  
  
# URL-адрес подключения к кластеру содержит IP-адреса pxc01, pxc02 и pxc03  
wsrep_cluster_address=gcomm://192.168.5.15,192.168.5.16,192.168.5.17  
  
# Для правильной работы Galera формат binlog должен быть ROW  
binlog_format=ROW  
  
# Использование движка хранения MyISAM не рекомендуется  
default_storage_engine=InnoDB  
  
# Этот режим блокировки автоинкремента InnoDB является обязательным для Galera  
innodb_autoinc_lock_mode=2  
  
# Адрес узла #2  
wsrep_node_address=192.168.5.16  
  
# Имя кластера  
wsrep_cluster_name=pxc_cluster  
  
# Метод SST  
wsrep_sst_method=xtrabackup-v2  
  
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"  
  
[sst]  
encrypt=4  
ssl-key=server-key.pem  
ssl-ca=ca.pem  
ssl-cert=server-cert.pem

Сохраните и закройте файл ‘/etc/mysql/my.cnf‘, когда закончите.

mysql cnf pxc02

Далее запустите сервер MySQL, введя следующую команду утилиты systemctl. Затем проверьте статус сервера MySQL, чтобы убедиться, что он работает.

Это запустит службу MySQL и присоединит инициализированный Percona XtraDB Cluster на сервере ‘pxc01‘.

sudo systemctl start mysql  
sudo systemctl status mysql

запуск и проверка mysql pxc02

Чтобы проверить, что процесс успешен, вам нужно войти в оболочку MySQL. Введите следующую команду, чтобы войти в оболочку MySQL как пользователь root. Когда будет предложено, введите свой пароль root MySQL.

sudo mysql -u root -p

После входа в систему введите следующий запрос MySQL, чтобы проверить статус Percona XtraDB Cluster.

show status like 'wsrep%';

Вы должны получить вывод, подобный этому - в разделе ‘wsrep_cluster_size‘ вы увидите значение ‘2’, что означает, что в Percona XtraDB Cluster доступно два сервера. Вы также получите IP-адреса серверов в разделе ‘wsrep_incoming_address‘, которые являются IP-адресами серверов pxc01 и pxc02. Наконец, узел находится в состоянии Synced, что означает, что он полностью подключен и готов к репликации write-set.

проверка кластера pxc02

Таким образом, Percona XtraDB Cluster теперь работает с двумя узлами/серверами pxc01 и pxc02. Далее перейдите на сервер pxc03, чтобы добавить его в Percona XtraDB Cluster.

Добавление узла pxc03

Войдите на сервер ‘pxc03‘ и откройте конфигурационный файл MySQL ‘/etc/mysql/my.cnf‘ с помощью следующей команды редактора nano.

sudo nano /etc/mysql/my.cnf

Добавьте следующие строки в файл и обязательно измените значение ‘wsrep_cluster_address‘ на IP-адреса всех ваших серверов. Также в ‘wsrep_node_address‘ вы должны ввести IP-адрес ‘pxc03‘.

[mysqld]  
  
datadir=/var/lib/mysql  
user=mysql  
  
# Путь к библиотеке Galera  
wsrep_provider=/usr/lib/libgalera_smm.so  
  
# URL-адрес подключения к кластеру содержит IP-адреса pxc01, pxc02 и pxc03  
wsrep_cluster_address=gcomm://192.168.5.15,192.168.5.16,192.168.5.17  
  
# Для правильной работы Galera формат binlog должен быть ROW  
binlog_format=ROW  
  
# Использование движка хранения MyISAM не рекомендуется  
default_storage_engine=InnoDB  
  
# Этот режим блокировки автоинкремента InnoDB является обязательным для Galera  
innodb_autoinc_lock_mode=2  
  
# Адрес узла #3  
wsrep_node_address=192.168.5.17  
  
# Имя кластера  
wsrep_cluster_name=pxc_cluster  
  
# Метод SST  
wsrep_sst_method=xtrabackup-v2  
  
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"  
  
[sst]  
encrypt=4  
ssl-key=server-key.pem  
ssl-ca=ca.pem  
ssl-cert=server-cert.pem

Сохраните и закройте файл ‘/etc/mysql/my.cnf‘, когда закончите.

mysql конфигурация pxc03

Далее запустите сервер MySQL, введя следующую команду утилиты systemctl. Затем проверьте статус сервера MySQL, чтобы убедиться, что он работает.

Это запустит службу MySQL и присоединит Percona XtraDB Cluster.

sudo systemctl start mysql

запуск и проверка pxc03

Чтобы проверить, что процесс успешен, вам нужно войти в оболочку MySQL. Введите следующую команду, чтобы войти в оболочку MySQL как пользователь root. Когда будет предложено, введите свой пароль root MySQL.

sudo mysql -u root -p

После входа в систему введите следующий запрос MySQL, чтобы проверить статус Percona XtraDB Cluster.

show status like 'wsrep%';

Вы должны получить вывод, подобный этому - в разделе ‘wsrep_cluster_size‘ вы увидите значение ‘3’, что означает, что в Percona XtraDB Cluster доступно три сервера. Вы также получите IP-адреса серверов в разделе ‘wsrep_incoming_address‘, которые являются IP-адресами серверов pxc01, pxc02 и pxc03. Наконец, узел находится в состоянии Synced, что означает, что он полностью подключен и готов к репликации write-set.

проверка статуса кластера pxc03

Таким образом, Percona XtraDB Cluster теперь работает с тремя серверами Debian pxc01, pxc02 и pxc03. Вы завершили развертывание Percona XtraDB Cluster с тремя серверами Debian 11. На следующем этапе вы проверите репликацию базы данных между серверами Percona XtraDB Cluster.

Тестирование репликации

Войдите в оболочку MySQL с сервера ‘pxc02‘ и создайте новую базу данных ‘percona‘.

sudo mysql -u root -p  
CREATE DATABASE percona;

Теперь перейдите на сервер ‘pxc03‘, войдите в оболочку MySQL через пользователя root MySQL, затем переключитесь на базу данных ‘percona‘, которую вы создали на сервере ‘pxc02‘.

sudo mysql -u root -p  
USE percona;

При успешном выполнении вы должны получить вывод, такой как ‘База данных изменена’. Это также подтверждает, что база данных ‘percona’ реплицирована на серверах Percona XtraDB Cluster.

проверка репликации

Далее выполните следующий запрос MySQL, чтобы создать новую таблицу ‘example‘ на сервере ‘pxc03‘.

CREATE TABLE example (node_id INT PRIMARY KEY, node_name VARCHAR(30));

проверка репликации 2

Затем снова перейдите на сервер ‘pxc01‘ и выполните следующий запрос, чтобы вставить новые данные в базу данных ‘percona‘.

INSERT INTO percona.example VALUES (1, 'pxc01');  
INSERT INTO percona.example VALUES (2, 'pxc02');  
INSERT INTO percona.example VALUES (3, 'pxc03');

Наконец, вернитесь на сервер ‘pxc02‘ и выполните следующий запрос, чтобы извлечь данные из базы данных ‘percona‘ и таблицы ‘example‘.

SELECT * FROM percona.example;

Вы должны получить вывод, подобный этому - Данные доступны на сервере ‘pxc02‘ Percona XtraDB Cluster. Таким образом, репликация между серверами Percona XtraDB Cluster работает, что означает, что ваше развертывание Percona XtraDB Cluster на серверах Debian 11 также успешно.

проверка репликации pxc03

Заключение

В этом руководстве вы установили и настроили Percona XtraDB Cluster с тремя серверами Debian 11. Вы инициализировали Percona XtraDB Cluster и добавили два узла/сервера в Percona XtraDB Cluster. Также вы обеспечили безопасность Percona XtraDB Cluster с помощью брандмауэра ufw.

Кроме того, вы также обеспечили безопасность Percona XtraDB Cluster, шифруя трафик между всеми серверами с помощью сертификатов SSL/TLS. Это достигается с помощью параметра ‘pxc-encrypt-cluster-traffic’, который включен по умолчанию.

С этим вы теперь можете начать добавлять больше серверов в ваш Percona XtraDB Cluster, используя шаги, которые вы изучили, и добавляя дополнительные узлы, которые обеспечат высокую доступность и балансировку нагрузки в Percona XtraDB Cluster. Чтобы узнать больше, посетите официальную документацию Percona XtraDB Cluster.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.