Установка баз данных · 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, чтобы добавить службу 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 enable’. Когда будет предложено, введите y для подтверждения и нажмите ENTER для продолжения. Вывод ‘Брандмауэр активен и включен при запуске системы’ подтверждает, что брандмауэр ufw работает и будет запускаться автоматически при запуске системы.
sudo ufw enableНаконец, проверьте статус брандмауэра ufw, используя следующую команду.
sudo ufw statusВы должны получить вывод, подобный этому.

Установка 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
Теперь обновите и обновите индекс пакетов 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.

После включения репозитория введите команду ‘apt install‘, чтобы установить пакет ‘percona-xtradb-cluster‘ на ваши системы. Введите y, чтобы подтвердить установку, и нажмите ENTER для продолжения.
sudo apt install percona-xtradb-cluster
Во время установки 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, введя следующий запрос.
sudo systemctl status mysqlВы должны получить вывод, подобный этому - Вы вошли в MySQL 8.0 Percona XtraDB Cluster.

На данный момент вы настроили файл /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‘, когда закончите.

Далее выполните следующую команду 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, введя следующую команду утилиты systemctl. Затем проверьте статус сервера MySQL, чтобы убедиться, что он работает.
Это запустит службу MySQL и присоединит инициализированный Percona XtraDB Cluster на сервере ‘pxc01‘.
sudo systemctl start mysql
sudo systemctl status mysql
Чтобы проверить, что процесс успешен, вам нужно войти в оболочку 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.

Таким образом, 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, введя следующую команду утилиты systemctl. Затем проверьте статус сервера MySQL, чтобы убедиться, что он работает.
Это запустит службу MySQL и присоединит Percona XtraDB Cluster.
sudo systemctl start mysql
Чтобы проверить, что процесс успешен, вам нужно войти в оболочку 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.

Таким образом, 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));
Затем снова перейдите на сервер ‘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 также успешно.

Заключение
В этом руководстве вы установили и настроили 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.
Get new posts in your inbox
No spam. Unsubscribe anytime.