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

Как установить Percona XtraDB Cluster на Rocky Linux 9

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) на серверах Rocky Linux 9. Вы установите Percona XtraDB Cluster на несколько систем Rocky Linux и настроите Percona XtraDB Cluster для включения репликации базы данных между серверами, затем вы также проверите, вставив данные на один сервер и проверив данные с другого сервера.

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

Чтобы завершить этот гид, у вас должно быть два или более сервера с установленным Rocky Linux 9. У вас также должен быть пользователь, не являющийся root, с правами администратора sudo/root на всех серверах. Кроме того, SELinux должен работать в разрешающем режиме.

Для этого примера будут использоваться три сервера Rocky Linux 9. Ниже приведены данные серверов:

Hostname       IP Address  
--------------------------  
pxc-rock01       192.168.5.80  
pxc-rock02       192.168.5.81  
pxc-rock03       192.168.5.82

Если все требования выполнены, вы можете начать установку Percona XtraDB Cluster.

Настройка /etc/hosts и Firewalld

На этом первом этапе вы настроите файл /etc/hosts и firewalld на всех серверах Rocky Linux. Вы измените файл /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.80  pxc-rock01  
192.168.5.81  pxc-rock02  
192.168.5.82  pxc-rock03

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

Далее введите следующую команду ‘firewall-cmd‘, чтобы добавить вашу внутреннюю подсеть как доверенный источник. С этим только доверенные сети смогут получить доступ ко всем серверам.

sudo firewall-cmd --permanent --add-source=192.168.5.0/24

Теперь откройте некоторые порты для Percona XtraDB Cluster и перезагрузите firewalld, чтобы применить изменения. Вывод ‘success‘ подтверждает, что новое правило было добавлено в firewalld.

sudo firewall-cmd --add-port={3306/tcp,4444/tcp,4567/tcp,4567/udp,4568/tcp} --permanent  
sudo firewall-cmd --reload

Наконец, введите следующую команду ‘firewall-cmd’, чтобы проверить список включенных правил в firewalld.

sudo firewall-cmd --list-all

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

настройка имени хоста и firewalld

С файлом /etc/hosts и настроенным firewalld вы теперь установите пакеты Percona XtraDB Cluster.

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

В этом разделе вы установите Percona XtraDB Cluster на всех ваших серверах Rocky Linux. Вы настроите репозиторий Percona XtraDB, затем установите пакет Percona XtraDB Cluster. Также в конце вы измените пароль по умолчанию для MySQL root на всех ваших серверах.

Сначала вы должны добавить и включить репозиторий EPEL. Введите следующую команду ‘dnf install’, чтобы добавить репозиторий EPEL.

sudo dnf install epel-release

Теперь введите следующую команду, чтобы установить приложение Percona release. Введите y, когда будет предложено, и нажмите ENTER, чтобы продолжить. Этот пакет предоставляет инструмент командной строки ‘percona-release‘, который можно использовать для управления репозиториями Percona.

sudo dnf install https://repo.percona.com/yum/percona-release-latest.noarch.rpm -y

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

Далее выполните следующую команду ‘percona-release‘, чтобы включить репозиторий Percona XtraDB Cluster v8.0. В процессе вам будет предложено отключить репозиторий MySQL по умолчанию, введите y, чтобы подтвердить, и нажмите ENTER, чтобы продолжить.

sudo percona-release setup pxc-80

Сообщение об успешном завершении ‘All done!‘ подтверждает, что операция прошла успешно.

включить репозиторий percona xtradb

Проверьте список включенных репозиториев, введя команду ‘dnf repolist’ ниже. Вы должны увидеть, что репозиторий ‘pxc-80-release’ включен и перечислен в выводе с некоторыми дополнительными репозиториями, такими как ‘prel-release’ и ‘tools-release’.

sudo dnf repolist

список репозиториев

Теперь введите следующую команду ‘dnf install’, чтобы установить пакет Percona XtraDB Cluster. Введите y, когда будет предложено для подтверждения, и нажмите ENTER, чтобы продолжить.

sudo dnf install percona-xtradb-cluster

установить percona xtradb cluster

Когда будет предложено принять GPG-ключ Percona, введите y и нажмите ENTER, чтобы подтвердить.

принять gpg-ключ

После установки Percona XtraDB Cluster введите следующую команду systemctl для запуска и включения службы MySQL.

sudo systemctl start mysql  
sudo systemctl enable mysql

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

sudo systemctl status mysql

проверить службу mysql

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

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

sudo grep 'temporary password' /var/log/mysqld.log

Затем войдите в оболочку MySQL с помощью команды ‘ mysql ‘ ниже. Когда будет предложено ввести пароль, вставьте скопированный пароль по умолчанию для MySQL.

sudo mysql -u root -p

После входа вы должны увидеть оболочку MySQL с подсказкой, подобной этой ‘ mysql> ‘.

войти в оболочку mysql

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

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewP4ssr00tMySQL';  
quit

изменить пароль по умолчанию для mysql root

Наконец, перед настройкой Percona XtraDB Cluster вы должны остановить службу MySQL. Введите следующую команду ‘systemctl’, чтобы остановить службу MySQL на всех серверах.

sudo systemctl stop mysql

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

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

С тех пор как Percona XtraDB Cluster 8.0, соединение по умолчанию между серверами в кластере должно быть зашифровано. Чтобы настроить шифрование между серверами, у вас должны быть одинаковые сертификаты SSL/TLS на всех серверах.

В этом разделе вы скопируете сгенерированные по умолчанию сертификаты SSl/TLS с сервера ‘pxc-rock01 ‘ на серверы ‘pxc-rock02 ‘ и ‘pxc-rock03 ‘.

На сервере ‘pxc-rock01 ‘ введите следующую команду, чтобы проверить доступные сертификаты. С этим вы должны скопировать файлы сертификатов ‘server-cert.pem ‘, ‘server-key.pem ‘ и ‘ca.pem ‘ на оба сервера pxc-rock02 и pxc-rock03.

ls /var/lib/mysql/*.pem

Переместите ваш рабочий каталог в ‘/var/lib/mysql ‘.

cd /var/lib/mysql

Теперь введите следующую команду scp, чтобы скопировать файлы сертификатов SSL/TLS на оба сервера pxc-rock02 и pxc-rock03.

scp server-key.pem server-cert.pem ca.pem root@pxc-rock02:/var/lib/mysql  
scp server-key.pem server-cert.pem ca.pem root@pxc-rock03:/var/lib/mysql

Ниже приведен вывод во время процесса копирования сертификатов SSL/TLS с pxc-rock01 на сервер pxc-rock02.

копировать сертификаты pxc-rock02

А ниже приведен вывод во время процесса копирования сертификатов SSL/TLS с pxc-rock01 на сервер pxc-rock03.

Инициализация Percona XtraDB Cluster на pxc-rock01

Сначала вы инициализируете Percona XtraDB Cluster с сервера pxc-rock01. Для этого вам нужно изменить файл конфигурации сервера MySQL ‘/etc/my.cnf ‘, затем запустить службу ‘mysql@bootstrap ‘.

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

sudo nano /etc/my.cnf

Добавьте список IP-адресов серверов вашего Percona XtraDB Cluster в параметр ‘wsrep_cluster_address ‘ и добавьте параметр ‘default_storage_engine=InnoDB ‘.

# URL соединения кластера содержит IP-адреса pxc-rock01, pxc-rock02 и pxc-rock03  
wsrep_cluster_address=gcomm://192.168.5.80,192.168.5.81,192.168.5.82  
  
# Использование движка хранения MyISAM не рекомендуется.  
default_storage_engine=InnoDB

wsrep engine default storage engine

Измените ‘wsrep_node_address ‘ на текущий IP-адрес сервера, ‘wsrep_node_name ‘ на имя хоста системы, а ‘wsrep_cluster_name ‘ на имя вашего кластера.

# Адрес узла 1  
wsrep_node_address=192.168.5.80  
# Имя узла  
wsrep_node_name=pxc-rock01  
  
# Имя кластера  
wsrep_cluster_name=pxc-cluster

имя узла адрес и имя кластера

Наконец, внизу строки добавьте следующую конфигурацию, чтобы включить безопасное SSL/TLS-соединение между серверами Percona XtraDB Cluster и соединение sst.

# включить ssl/tls соединение  
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

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

Далее введите следующую команду systemctl, чтобы запустить службу ‘mysql@bootstrap ‘ и инициализировать первый сервер Percona XtraDB Cluster.

systemctl start [email protected]

Чтобы проверить и убедиться, что инициализация Percona XtraDB Cluster прошла успешно, вам следует войти в оболочку MySQL и проверить статус ‘wsrep% ‘.

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

sudo mysql -u root -p

После входа в систему введите следующий запрос, чтобы проверить статус ‘wsrep% ‘.

SHOW STATUS LIKE 'wsrep%';

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

проверить percona xtradb cluster

Таким образом, первый сервер Percona XtraDB Cluster ‘pxc-rock01 ‘ инициализирован. На следующем шаге вы добавите серверы ‘pxc-rock02 ‘ и ‘pxc-rock03 ‘ в кластер.

Добавление сервера pxc-rock02 в Percona XtraDB Cluster

После инициализации первого Percona XtraDb Cluster вы теперь добавите сервер pxc-rock02 в кластер. Способ добавления сервера в Percona XtraDB Cluster аналогичен процессу инициализации, вам нужно изменить файл конфигурации сервера MySQL по умолчанию ‘/etc/my.cnf’ и определить список серверов для кластера, затем запустить службу MySQL в обычном режиме.

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

sudo nano /etc/my.cnf

Добавьте список IP-адресов серверов вашего Percona XtraDB Cluster в параметр ‘wsrep_cluster_address ‘ и добавьте параметр ‘default_storage_engine=InnoDB ‘.

# URL соединения кластера содержит IP-адреса pxc-rock01, pxc-rock02 и pxc-rock03  
wsrep_cluster_address=gcomm://192.168.5.80,192.168.5.81,192.168.5.82  
  
# Использование движка хранения MyISAM не рекомендуется.  
default_storage_engine=InnoDB

wsrep адрес и движок базы данных по умолчанию

Измените ‘wsrep_node_address ‘ на текущий IP-адрес сервера, ‘wsrep_node_name ‘ на имя хоста системы, а ‘wsrep_cluster_name ‘ на имя вашего кластера.

# Адрес узла #2  
wsrep_node_address=192.168.5.81  
# Имя узла  
wsrep_node_name=pxc-rock02  
  
# Имя кластера  
wsrep_cluster_name=pxc-cluster

имя узла имя адреса и имя кластера

Наконец, внизу строки добавьте следующую конфигурацию, чтобы включить безопасное SSL/TLS-соединение между серверами Percona XtraDB Cluster и соединение sst.

# включить ssl/tls соединение  
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

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

Далее введите следующую команду systemctl, чтобы запустить службу MySQL. Это также позволит серверу ‘pxc-rock02 ‘ присоединиться к инициализированному Percona XtraDB Cluster.

sudo systemctl start mysql

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

sudo mysql -u root -p

Теперь введите следующий запрос, чтобы проверить статус ‘wsrep% ‘.

SHOW STATUS LIKE 'wsrep%';

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

проверить pxc cluster

Добавление сервера pxc-rock03 в Percona XtraDB Cluster

В этом разделе вы теперь добавите третий сервер pxc-rock03 в Percona XtraDB Cluster.

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

sudo nano /etc/my.cnf

Добавьте список IP-адресов серверов вашего Percona XtraDB Cluster в параметр ‘wsrep_cluster_address ‘ и добавьте параметр ‘default_storage_engine=InnoDB ‘.

# URL соединения кластера содержит IP-адреса pxc-rock01, pxc-rock02 и pxc-rock03  
wsrep_cluster_address=gcomm://192.168.5.80,192.168.5.81,192.168.5.82  
  
# Использование движка хранения MyISAM не рекомендуется.  
default_storage_engine=InnoDB

wsrep адрес и движок хранения по умолчанию

Измените ‘wsrep_node_address’ на текущий IP-адрес сервера, ‘wsrep_node_name ‘ на имя хоста системы, а ‘wsrep_cluster_name ‘ на имя вашего кластера.

# Адрес узла #3  
wsrep_node_address=192.168.5.82  
# Имя узла  
wsrep_node_name=pxc-rock02  
  
# Имя кластера  
wsrep_cluster_name=pxc-cluster

имя узла и имя кластера и IP-адрес

Наконец, внизу строки добавьте следующую конфигурацию, чтобы включить безопасное SSL/TLS-соединение между серверами Percona XtraDB Cluster и соединение sst.

# включить ssl/tls соединение  
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

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

Далее введите следующую команду systemctl, чтобы запустить службу MySQL и присоединить текущий сервер pxc-rock03 к Percona XtraDB Cluster.

sudo systemctl start mysql

Наконец, введите следующую команду mysql, чтобы войти в оболочку MySQL и проверить статус ‘wsrep% ‘. Когда будет предложено, введите свой пароль MySQL root.

sudo mysql -u root -p

Теперь введите следующий запрос, чтобы проверить статус ‘wsrep% ‘.

SHOW STATUS LIKE 'wsrep%';

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

проверить кластер pxc-roc03

На этом этапе вы теперь настроили Percona XtraDB Cluster с тремя различными серверами Rocky Linux 9. И с этим репликация базы данных должна работать между серверами на Percona XtraDB Cluster. На следующем шаге вы проверите репликацию вашей базы данных между несколькими серверами.

Тестирование репликации базы данных

В этом разделе вы проверите репликацию базы данных на Percona XtraDB Cluster. Это обеспечит успешность и завершенность вашей установки.

Сначала войдите в оболочку MySQL с сервера pxc-rock02 и создайте новую базу данных с именем ‘testdb ‘.

sudo mysql -u root -p  
CREATE DATABASE testdb;

создать базу данных pxc-rock02

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

sudo mysql -u root -p  
USE testdb;

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

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

создать таблицу pxc-rock03

Затем перейдите на сервер pxc-rock01, войдите в оболочку MySQL, затем вставьте новые данные в базу данных ‘testdb ‘ с помощью запроса ‘INSERT ‘ ниже.

sudo mysql -u root -p
INSERT INTO testdb.table1 VALUES (1, 'pxc-rock01');  
INSERT INTO testdb.table1 VALUES (2, 'pxc-rock02');  
INSERT INTO testdb.table1 VALUES (3, 'pxc-rock03');

вставить данные

После добавления данных вернитесь на сервер pxc-rock02 и введите запрос SELECT ниже, чтобы получить все доступные данные в базе данных ‘testdb ‘ и таблице ‘table1 ‘.

SELECT * FROM testdb.table1;

Если репликация прошла успешно, вы должны увидеть ваши вставленные данные на сервере pxc-rock02. Ваши данные будут храниться на всех серверах Percona XtraDB Cluster.

проверить данные

Это подтверждает, что установка Percona XtraDB Cluster на серверах Rocky Linux 9 была успешной.

Заключение

Вы установили и развернули Percona XtraDB Cluster в этом руководстве на трех серверах Rocky Linux 9. Вы узнали, как установить Percona XtraDB Cluster, обеспечить безопасность развертывания через firewalld, инициализировать кластер, а также добавлять узлы в кластер.

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

С этим вы можете добавить больше серверов в ваш текущий Percona XtraDB Cluster, используя шаги, которые вы узнали при добавлении серверов pxc-rock02 и pxc-rock03. Или вы также можете настроить балансировку нагрузки и высокую доступность с помощью сторонних приложений, таких как ProxySQL и HAPROXY. Чтобы узнать больше, посетите официальную документацию Percona XtraDB Cluster.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.