Base de données · 15 min read · Sep 26, 2025

Comment installer Percona XtraDB Cluster sur Rocky Linux 9

Percona XtraDB Cluster est une solution de clustering de base de données entièrement open-source pour MySQL. Elle vous permet de créer un déploiement de serveur MySQL haute disponibilité avec des performances robustes et élevées. La dernière version de Percona XtraDB Cluster est 8.0, qui est entièrement compatible avec MySQL Server Community Edition 8.0.

Percona XtraDB Cluster fournit des fonctionnalités telles que la réplication synchrone, la réplication multi-source, le provisionnement automatique des nœuds, la configuration automatique du chiffrement SSL, et des performances optimisées.

Percona XtraDB Cluster garantit la haute disponibilité de votre serveur de base de données, offre une scalabilité linéaire, et prévient les temps d’arrêt et la perte de données.

Ce guide vous montrera comment configurer un cluster MySQL via Percona XtraDB Cluster (PXC) sur des serveurs Rocky Linux 9. Vous installerez Percona XtraDB Cluster sur plusieurs systèmes Rocky Linux, et configurerez Percona XtraDB Cluster pour activer la réplication de base de données entre les serveurs, puis vous vérifierez également en insérant des données dans un serveur et en vérifiant les données depuis un autre serveur.

Prérequis

Pour compléter ce guide, vous devez disposer de deux serveurs ou plus exécutant Rocky Linux 9. Vous devez également avoir un utilisateur non-root avec des privilèges d’administrateur sudo/root sur tous les serveurs. De plus, SELinux doit être en mode permissif.

Pour cet exemple, trois serveurs Rocky Linux 9 seront utilisés. Voici les détails des serveurs :

Nom d'hôte       Adresse IP  
--------------------------  
pxc-rock01       192.168.5.80  
pxc-rock02       192.168.5.81  
pxc-rock03       192.168.5.82

Si toutes les exigences sont prêtes, vous pouvez commencer l’installation de Percona XtraDB Cluster.

Configuration de /etc/hosts et Firewalld

Dans cette première étape, vous allez configurer le fichier /etc/hosts et firewalld sur tous les serveurs Rocky Linux. Vous allez modifier le fichier /etc/hosts et ajouter les détails des adresses IP et des noms d’hôte pour chaque serveur, puis vous ajouterez certains ports qui seront utilisés par Percona XtraDB Cluster.

Voici les détails des ports de Percona XtraDB Cluster que vous devez ouvrir sur votre pare-feu.

Ports   Utilisé pour  
---------------------------  
3306    Connexion client MySQL et SST (State Snapshot Transfer)  
4444    SST via Percona XtraBackup  
4567    Trafic de réplication de write-set (sur TCP) et réplication multicast (sur TCP et UDP)  
4568    IST (Incremental State Transfer)

Pour commencer, ouvrez le fichier ‘/etc/hosts’ en utilisant la commande suivante de l’éditeur nano.

sudo nano /etc/hosts

Ajoutez les détails du nom d’hôte et de l’adresse IP qui seront utilisés pour le cluster. Assurez-vous de changer les détails avec votre environnement serveur.

192.168.5.80  pxc-rock01  
192.168.5.81  pxc-rock02  
192.168.5.82  pxc-rock03

Enregistrez et fermez le fichier une fois terminé.

Ensuite, entrez la commande ‘firewall-cmd‘ suivante pour ajouter votre sous-réseau interne comme source de confiance. Avec cela, seuls les réseaux de confiance seront autorisés à accéder à tous les serveurs.

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

Maintenant, ouvrez certains ports pour Percona XtraDB Cluster et rechargez le firewalld pour appliquer les modifications. Une sortie ‘success‘ confirme que la nouvelle règle a été ajoutée au firewalld.

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

Enfin, entrez la commande ‘firewall-cmd‘ suivante pour vérifier la liste des règles activées sur firewalld.

sudo firewall-cmd --list-all

La sortie suivante sera imprimée sur votre terminal. Assurez-vous que tous les ports qui seront utilisés par le Percona XtraDB Cluster sont répertoriés.

configuration du nom d'hôte et de firewalld

Avec le fichier /etc/hosts et firewalld configurés, vous allez maintenant installer les paquets Percona XtraDB Cluster.

Installation de Percona XtraDB Cluster

Dans cette section, vous allez installer Percona XtraDB Cluster sur tous vos serveurs Rocky Linux. Vous allez configurer le dépôt Percona XtraDB, puis installer le paquet Percona XtraDB Cluster. À la fin, vous changerez également le mot de passe root MySQL par défaut sur tous vos serveurs.

Tout d’abord, vous devez ajouter et activer le dépôt EPEL. Entrez la commande ‘dnf install‘ suivante pour ajouter le dépôt EPEL.

sudo dnf install epel-release

Maintenant, entrez la commande suivante pour installer l’application de publication Percona. Saisissez y lorsque vous y êtes invité et appuyez sur ENTRÉE pour continuer. Ce paquet fournit un outil en ligne de commande ‘percona-release‘ qui peut être utilisé pour gérer les dépôts Percona.

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

ajouter le dépôt percona

Ensuite, exécutez la commande ‘percona-release‘ suivante pour activer le dépôt Percona XtraDB Cluster v8.0. Au cours du processus, vous serez invité à désactiver le dépôt MySQL par défaut, saisissez y pour confirmer et appuyez sur ENTRÉE pour continuer.

sudo percona-release setup pxc-80

Un message de sortie ‘All done!‘ confirme que l’opération a réussi.

activer le dépôt percona xtradb

Vérifiez la liste des dépôts activés en entrant la commande ‘dnf repolist‘ ci-dessous. Vous devriez voir le dépôt ‘pxc-80-release’ activé et répertorié dans la sortie avec quelques dépôts supplémentaires tels que ‘prel-release’ et ‘tools-release’.

sudo dnf repolist

liste des dépôts

Maintenant, entrez la commande ‘dnf install’ suivante pour installer le paquet Percona XtraDB Cluster. Saisissez y lorsque vous y êtes invité pour confirmation et appuyez sur ENTRÉE pour continuer.

sudo dnf install percona-xtradb-cluster

installer percona xtradb cluster

Lorsque vous êtes invité à accepter la clé GPG de Percona, saisissez y et appuyez sur ENTRÉE pour confirmer.

accepter la clé gpg

Une fois Percona XtraDB Cluster installé, entrez la commande systemctl suivante pour démarrer et activer le service MySQL.

sudo systemctl start mysql  
sudo systemctl enable mysql

Vérifiez maintenant l’état du service MySQL en utilisant la commande ci-dessous. Une sortie ‘active (running)‘ confirme que MySQL est en cours d’exécution. Et la sortie ‘..; enabled..’ confirme que MySQL démarrera automatiquement au démarrage du système.

sudo systemctl status mysql

vérifier le service mysql

Avec le Percona XtraDB Cluster en cours d’exécution, vous allez maintenant changer le mot de passe root par défaut pour tous vos serveurs MySQL.

Entrez la commande suivante pour vérifier le mot de passe généré par défaut pour votre utilisateur root MySQL. Copiez le mot de passe root MySQL par défaut.

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

Ensuite, connectez-vous à l’interface de commande MySQL via la commande ‘mysql‘ ci-dessous. Lorsque vous êtes invité à entrer le mot de passe, collez le mot de passe MySQL par défaut que vous avez copié.

sudo mysql -u root -p

Une fois connecté, vous devriez voir l’interface de commande MySQL avec un prompt comme ceci ‘mysql>‘.

connexion à l'interface de commande mysql

Entrez la requête MySQL suivante pour changer le mot de passe par défaut pour l’utilisateur root MySQL, puis quittez.

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

changer le mot de passe root mysql par défaut

Enfin, avant de configurer le Percona XtraDB Cluster, vous devez arrêter le service MySQL. Entrez la commande ‘systemctl’ suivante pour arrêter le service MySQL sur tous les serveurs.

sudo systemctl stop mysql

Avec le Percona XtraDB Cluster installé, la configuration root MySQL, et le service MySQL arrêté, vous serez maintenant prêt à configurer et à mettre en place le cluster.

Copier les certificats SSL/TLS

Depuis le Percona XtraDB Cluster 8.0, la connexion par défaut entre les serveurs du cluster doit être chiffrée. Pour configurer le chiffrement entre les serveurs, vous devez avoir les mêmes certificats SSL/TLS sur tous les serveurs.

Dans cette section, vous allez copier les certificats SSl/TLS générés par défaut du serveur ‘pxc-rock01‘ vers les serveurs ‘pxc-rock02‘ et ‘pxc-rock03‘.

Sur le serveur ‘pxc-rock01‘, entrez la commande suivante pour vérifier les certificats disponibles. Avec cela, vous devez copier les fichiers de certificat ‘server-cert.pem‘, ‘server-key.pem‘, et ‘ca.pem‘ vers les serveurs pxc-rock02 et pxc-rock03.

ls /var/lib/mysql/*.pem

Déplacez votre répertoire de travail vers ‘/var/lib/mysql‘.

cd /var/lib/mysql

Maintenant, entrez la commande scp suivante pour copier les fichiers de certificat SSL/TLS vers les serveurs pxc-rock02 et 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

Voici la sortie pendant le processus de copie des certificats SSL/TLS du pxc-rock01 vers le serveur pxc-rock02.

copier les certificats pxc-rock02

Et voici la sortie pendant le processus de copie des certificats SSL/TLS du pxc-rock01 vers le serveur pxc-rock03.

Initialiser Percona XtraDB Cluster sur pxc-rock01

Tout d’abord, vous allez initialiser le Percona XtraDB Cluster depuis le serveur pxc-rock01. Pour ce faire, vous devrez modifier le fichier de configuration du serveur MySQL ‘/etc/my.cnf‘, puis démarrer le service ‘mysql@bootstrap‘.

Ouvrez le fichier de configuration MySQL ‘/etc/my.cnf’ en utilisant la commande suivante de l’éditeur nano.

sudo nano /etc/my.cnf

Ajoutez la liste des adresses IP de vos serveurs Percona XtraDB Cluster au paramètre ‘wsrep_cluster_address‘ et ajoutez le paramètre ‘default_storage_engine=InnoDB‘.

# L'URL de connexion au cluster contient les IP de pxc-rock01, pxc-rock02, et pxc-rock03  
wsrep_cluster_address=gcomm://192.168.5.80,192.168.5.81,192.168.5.82  
  
# L'utilisation du moteur de stockage MyISAM n'est pas recommandée.  
default_storage_engine=InnoDB

wsrep moteur moteur de stockage par défaut

Changez l’wsrep_node_address avec l’adresse IP actuelle du serveur, le wsrep_node_name avec le nom d’hôte du système, et le wsrep_cluster_name avec le nom de votre cluster.

# Adresse du nœud 1  
wsrep_node_address=192.168.5.80  
# Nom du nœud  
wsrep_node_name=pxc-rock01  
  
# Nom du cluster  
wsrep_cluster_name=pxc-cluster

nom du nœud adresse et nom du cluster

Enfin, en bas de la ligne, ajoutez la configuration suivante pour activer une connexion SSL/TLS sécurisée entre les serveurs Percona XtraDB Cluster et la connexion sst.

# activer la connexion 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

Enregistrez et fermez le fichier une fois terminé.

Ensuite, entrez la commande systemctl suivante pour démarrer le service ‘mysql@bootstrap‘ et initialiser le premier serveur Percona XtraDB Cluster.

systemctl start [email protected]

Pour vérifier et s’assurer que l’initialisation de Percona XtraDB Cluster a réussi, vous devez vous connecter à l’interface de commande MySQL et vérifier l’état ‘wsrep%‘.

Entrez la commande ‘mysql‘ suivante pour vous connecter au serveur MySQL en tant qu’utilisateur ‘root‘. Saisissez votre nouveau mot de passe root MySQL lorsque vous y êtes invité.

sudo mysql -u root -p

Après vous être connecté, entrez la requête suivante pour vérifier le détail de l’état ‘wsrep%‘.

SHOW STATUS LIKE 'wsrep%';

Vous devriez recevoir une sortie comme celle-ci - Dans la section ‘wsrep_cluster_size‘, vous verrez la valeur ‘1‘, ce qui signifie que le Percona XtraDB Cluster est initialisé avec 1 serveur. Vous obtiendrez également les adresses IP des serveurs dans la section ‘wsrep_incoming_address‘. Enfin, le nœud est dans l’état Synced, ce qui signifie qu’il est entièrement connecté et prêt pour la réplication de write-set.

vérifier percona xtradb cluster

Avec cela, le premier serveur du Percona XtraDB Cluster ‘pxc-rock01‘ est initialisé. Dans l’étape suivante, vous ajouterez les serveurs ‘pxc-rock02‘ et ‘pxc-rock03‘ au cluster.

Ajouter le serveur pxc-rock02 au Percona XtraDB Cluster

Après que le premier Percona XtraDb Cluster soit initialisé, vous allez maintenant ajouter le serveur pxc-rock02 au cluster. La façon d’ajouter un serveur au Percona XtraDB Cluster est similaire au processus d’initialisation, vous devez modifier le fichier de configuration du serveur MySQL par défaut ‘/etc/my.cnf‘ et définir la liste des serveurs pour le cluster, puis démarrer le service MySQL normalement.

Entrez la commande de l’éditeur nano suivante pour ouvrir le fichier de configuration MySQL ‘/etc/my.cnf‘.

sudo nano /etc/my.cnf

Ajoutez la liste des adresses IP de vos serveurs Percona XtraDB Cluster au paramètre ‘wsrep_cluster_address‘ et ajoutez le paramètre ‘default_storage_engine=InnoDB‘.

# L'URL de connexion au cluster contient les IP de pxc-rock01, pxc-rock02, et pxc-rock03  
wsrep_cluster_address=gcomm://192.168.5.80,192.168.5.81,192.168.5.82  
  
# L'utilisation du moteur de stockage MyISAM n'est pas recommandée.  
default_storage_engine=InnoDB

wsrep adresse et moteur de db par défaut

Changez l’wsrep_node_address avec l’adresse IP actuelle du serveur, le wsrep_node_name avec le nom d’hôte du système, et le wsrep_cluster_name avec le nom de votre cluster.

# Adresse du nœud #2  
wsrep_node_address=192.168.5.81  
# Nom du nœud  
wsrep_node_name=pxc-rock02  
  
# Nom du cluster  
wsrep_cluster_name=pxc-cluster

nom du nœud nom adresse et nom du cluster

Enfin, en bas de la ligne, ajoutez la configuration suivante pour activer une connexion SSL/TLS sécurisée entre les serveurs Percona XtraDB Cluster et la connexion sst.

# activer la connexion 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

Enregistrez et fermez le fichier une fois terminé.

Ensuite, entrez la commande systemctl suivante pour démarrer le service MySQL. Cela fera également rejoindre le serveur ‘pxc-rock02‘ au Percona XtraDB Cluster initialisé.

sudo systemctl start mysql

Enfin, pour vous assurer que le serveur pxc-rock02 est ajouté au Percona XtraDB Cluster, vous devez vous connecter à l’interface de commande MySQL en tant qu’utilisateur root via la commande suivante. Lorsque vous y êtes invité, saisissez votre mot de passe root MySQL.

sudo mysql -u root -p

Maintenant, entrez la requête suivante pour vérifier le détail de l’état ‘wsrep%‘.

SHOW STATUS LIKE 'wsrep%';

Vous devriez recevoir une sortie comme celle-ci - Dans la section ‘wsrep_cluster_size‘, vous verrez la valeur ‘2‘, ce qui signifie qu’il y a deux serveurs disponibles sur le Percona XtraDB Cluster. Vous obtiendrez également les adresses IP des serveurs dans la section ‘wsrep_incoming_address‘, qui sont les adresses IP des serveurs pxc-rock01 et pxc-rock02. Enfin, le nœud est dans l’état Synced, ce qui signifie qu’il est entièrement connecté et prêt pour la réplication de write-set.

vérifier le cluster pxc

Ajouter le serveur pxc-rock03 au Percona XtraDB Cluster

Dans cette section, vous allez maintenant ajouter le troisième serveur pxc-rock03 au Percona XtraDB Cluster.

Ouvrez le fichier de configuration ‘/etc/my.cnf‘ en utilisant la commande suivante de l’éditeur nano.

sudo nano /etc/my.cnf

Ajoutez la liste des adresses IP de vos serveurs Percona XtraDB Cluster au paramètre ‘wsrep_cluster_address‘ et ajoutez le paramètre ‘default_storage_engine=InnoDB‘.

# L'URL de connexion au cluster contient les IP de pxc-rock01, pxc-rock02, et pxc-rock03  
wsrep_cluster_address=gcomm://192.168.5.80,192.168.5.81,192.168.5.82  
  
# L'utilisation du moteur de stockage MyISAM n'est pas recommandée.  
default_storage_engine=InnoDB

wsrep adresse et moteur de stockage par défaut

Changez l’wsrep_node_address avec l’adresse IP actuelle du serveur, le wsrep_node_name avec le nom d’hôte du système, et le wsrep_cluster_name avec le nom de votre cluster.

# Adresse du nœud #3  
wsrep_node_address=192.168.5.82  
# Nom du nœud  
wsrep_node_name=pxc-rock02  
  
# Nom du cluster  
wsrep_cluster_name=pxc-cluster

nom du nœud et nom du cluster et adresse ip

Enfin, en bas de la ligne, ajoutez la configuration suivante pour activer une connexion SSL/TLS sécurisée entre les serveurs Percona XtraDB Cluster et la connexion sst.

# activer la connexion 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

Enregistrez et fermez le fichier une fois terminé.

Ensuite, entrez la commande systemctl suivante pour démarrer le service MySQL et rejoindre le serveur actuel pxc-rock03 au Percona XtraDB Cluster.

sudo systemctl start mysql

Enfin, entrez la commande mysql suivante pour vous connecter à l’interface de commande MySQL et vérifier l’état ‘wsrep%‘. Lorsque vous y êtes invité, saisissez votre mot de passe root MySQL.

sudo mysql -u root -p

Maintenant, entrez la requête suivante pour vérifier le détail de l’état ‘wsrep%‘.

SHOW STATUS LIKE 'wsrep%';

Vous devriez recevoir une sortie comme celle-ci - Dans la section ‘wsrep_cluster_size‘, vous verrez la valeur ‘3‘, ce qui signifie qu’il y a trois serveurs disponibles sur le Percona XtraDB Cluster. Vous obtiendrez également les adresses IP des serveurs dans la section ‘wsrep_incoming_address‘, qui sont les adresses IP des serveurs pxc-rock01, pxc-rock02, et pxc-rock03. Enfin, le nœud est dans l’état Synced, ce qui signifie qu’il est entièrement connecté et prêt pour la réplication de write-set.

vérifier le cluster pxc-roc03

À ce stade, vous avez maintenant configuré Percona XtraDB Cluster avec trois serveurs différents Rocky Linux 9. Et avec cela, la réplication de base de données devrait fonctionner entre les serveurs sur Percona XtraDB Cluster. Dans l’étape suivante, vous allez vérifier la réplication de votre base de données entre plusieurs serveurs.

Tester la réplication de base de données

Dans cette section, vous allez vérifier la réplication de base de données sur Percona XtraDB Cluster. Cela garantira que votre installation a réussi et est terminée.

Tout d’abord, connectez-vous à l’interface de commande MySQL depuis le serveur pxc-rock02 et créez une nouvelle base de données appelée ‘testdb‘.

sudo mysql -u root -p  
CREATE DATABASE testdb;

créer une base de données pxc-rock02

Maintenant, déplacez-vous vers le serveur pxc-rock03, connectez-vous à l’interface de commande MySQL via un utilisateur root, puis changez la base de données de travail par défaut en ‘testdb‘.

sudo mysql -u root -p  
USE testdb;

Entrez la requête suivante pour créer une nouvelle table appelée ‘table1‘.

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

créer une table pxc-rock03

Ensuite, déplacez-vous vers le serveur pxc-rock01, connectez-vous à l’interface de commande MySQL, puis insérez de nouvelles données dans la base de données ‘testdb‘ via la requête ‘INSERT‘ ci-dessous.

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');

insérer des données

Une fois les données ajoutées, revenez au serveur pxc-rock02 et entrez la requête SELECT ci-dessous pour récupérer toutes les données disponibles dans la base de données ‘testdb‘ et la table ‘table1‘.

SELECT * FROM testdb.table1;

Si la réplication est réussie, vous devriez avoir vos données insérées disponibles sur le serveur pxc-rock02. Vos données seront stockées sur tous les serveurs du Percona XtraDB Cluster.

vérifier les données

Cela confirme que l’installation du Percona XtraDB Cluster sur les serveurs Rocky Linux 9 a été réussie.

Conclusion

Vous avez installé et déployé Percona XtraDB Cluster dans ce guide sur trois serveurs Rocky Linux 9. Vous avez appris comment installer Percona XtraDB Cluster, sécuriser le déploiement via firewalld, initialiser le cluster, et également ajouter des nœuds au cluster.

En plus de cela, vous avez également sécurisé l’installation de Percona XtraDB Cluster en chiffrant le trafic entre tous les serveurs à l’aide de certificats SSL/TLS et de l’option ‘pxc-encrypt-cluster-traffic’, qui est activée par défaut sur Percona XtraDB Cluster 8.0.

Avec cela, vous pouvez ajouter plus de serveurs à votre Percona XtraDB Cluster actuel en utilisant les étapes que vous avez apprises pour ajouter les serveurs pxc-rock02 et pxc-rock03. Ou vous pouvez également configurer un équilibrage de charge et une haute disponibilité avec des applications tierces telles que ProxySQL et HAPROXY. Pour en savoir plus, visitez la documentation officielle de Percona XtraDB Cluster.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.