Base de données · 15 min read · Sep 26, 2025
Comment installer Percona XtraDB Cluster sur Debian 11

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 robuste et à haute disponibilité qui offre des performances é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.
Dans ce tutoriel, vous installerez et configurerez un cluster MySQL via Percona XtraDB Cluster (PXC) sur des serveurs Debian 11. Vous installerez Percona XtraDB Cluster - une solution open-source pour le cluster MySQL - sur plusieurs serveurs Debian, puis configurerez le cluster MySQL pour activer la réplication entre plusieurs serveurs MySQL.
Prérequis
Pour compléter ce tutoriel, vous aurez besoin de deux serveurs ou plus exécutant Debian 11. De plus, vous devez avoir un utilisateur non-root avec des privilèges d’administrateur sudo/root sur tous vos serveurs.
Cet exemple utilise trois serveurs Debian 11 avec les détails suivants :
Nom d'hôte Adresse IP
--------------------------
pxc01 192.168.5.15
pxc02 192.168.5.16
pxc03 192.168.5.17Lorsque tous les serveurs sont prêts, vous pouvez commencer à installer le Percona XtraDB Cluster.
Configuration des hôtes et du pare-feu
Tout d’abord, vous devez configurer le fichier /etc/hosts sur chaque serveur pour vous assurer que chaque nom d’hôte est résolu à la bonne adresse IP, puis configurer un pare-feu pour ouvrir certains ports que Percona XtraDB Cluster utilisera. Cela doit être fait sur tous les serveurs.
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 write-set (sur TCP) et réplication multicast (sur TCP et UDP)
4568 IST (Incremental State Transfer)Pour commencer, ouvrez le fichier de configuration ‘/etc/hosts’ en utilisant l’éditeur nano suivant.
sudo nano /etc/hostsAjoutez les lignes suivantes au fichier et assurez-vous de changer les détails des adresses IP et des noms d’hôte avec votre environnement.
192.168.5.15 pxc01
192.168.5.16 pxc02
192.168.5.17 pxc03Enregistrez et quittez le fichier une fois terminé.
Maintenant, entrez la commande ‘apt install’ suivante pour installer le paquet de pare-feu ufw. Lorsque vous y êtes invité, saisissez y pour confirmer et appuyez sur ENTRÉE pour continuer.
sudo apt install ufw
Après l’installation de ufw, exécutez la commande ufw suivante pour ajouter le service OpenSSH. Cela garantira que vous ne serez pas verrouillé hors de votre serveur. Et si vous avez un port SSH personnalisé, vous pouvez simplement changer le paramètre ‘OpenSSH’ avec votre port SSH.
sudo ufw allow OpenSSHEnsuite, entrez la commande ufw suivante pour ouvrir certains ports que Percona XtraDB Cluster utilisera. Assurez-vous de changer le sous-réseau d’une adresse IP interne avec votre environnement actuel.
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
Après cela, exécutez et activez le pare-feu ufw en entrant la commande ‘ufw enable’. Lorsque vous y êtes invité, saisissez y pour confirmer et appuyez sur ENTRÉE pour continuer. Une sortie ‘Le pare-feu est actif et activé au démarrage du système’ confirme que le pare-feu ufw fonctionne et démarrera automatiquement au démarrage du système.
sudo ufw enableEnfin, vérifiez l’état du pare-feu ufw en utilisant la commande suivante.
sudo ufw statusVous devriez recevoir une sortie comme celle-ci.

Installation de Percona XtraDB Cluster
Dans cette section, vous ajouterez et configurerez le dépôt Percona XtraDB pour la distribution basée sur Debian. Ensuite, vous installerez Percona XtraDB sur tous vos serveurs.
De plus, pendant l’installation, vous serez invité à configurer le mot de passe root MySQL et à configurer le plugin d’authentification par défaut pour Percona XtraDB Cluster. Enfin, vous vérifierez l’installation de Percona XtraDB Cluster en vous connectant à l’interface MySQL via l’utilisateur root MySQL et le mot de passe que vous avez configuré.
Pour commencer, entrez la commande apt suivante pour installer quelques dépendances de base. Saisissez y lorsque vous y êtes invité et appuyez sur ENTRÉE pour continuer.
sudo apt install wget gnupg2 lsb-release curl -y
Ensuite, téléchargez le paquet de dépôt Percona XtraDB via la commande wget suivante. Une fois téléchargé, installez-le via la commande ‘dpkg -i‘ ci-dessous.
wget -q https://repo.percona.com/apt/percona-release_latest.generic_all.deb
sudo dpkg -i percona-release_latest.generic_all.deb
Maintenant, mettez à jour et rafraîchissez votre index de paquets Debian et exécutez la commande ‘percona-release‘ pour configurer le dépôt Percona XtraDB Cluster. Dans cet exemple, vous activerez le paquet Percona XtraDB Cluster v8.0, qui est équivalent au serveur MySQL v8.0.
sudo apt update
sudo percona-release setup pxc80Mettez à jour le dépôt.

Activez le dépôt Percona XtraDB Cluster v8.0.

Une fois le dépôt activé, entrez la commande ‘apt install’ pour installer le paquet ‘percona-xtradb-cluster’ sur vos systèmes. Saisissez y pour confirmer l’installation et appuyez sur ENTRÉE pour continuer.
sudo apt install percona-xtradb-cluster
Pendant l’installation de Percona XtraDB Cluster, vous devriez être invité à configurer le mot de passe root MySQL.
Saisissez le nouveau mot de passe fort et sélectionnez OK.

Répétez votre mot de passe et sélectionnez à nouveau OK.
Pour le plugin d’authentification MySQL par défaut, choisissez l’option ‘Utiliser le chiffrement de mot de passe fort (RECOMMANDÉ)‘ et sélectionnez OK.

Maintenant, le Percona XtraDB Cluster devrait être installé et il démarrera et sera activé automatiquement.
Lorsque Percona XtraDB Cluster est installé, entrez la commande suivante pour vérifier l’état du service MySQL.
sudo systemctl is-enabled mysql
sudo systemctl status mysqlUne sortie ‘enabled‘ confirme que le serveur MySQL est activé et démarrera automatiquement au démarrage du système. Et la sortie ‘active (running)‘ confirme que le serveur MySQL fonctionne.

Pour vérifier votre mot de passe root MySQL, connectez-vous à l’interface MySQL via la commande ‘mysql‘ ci-dessous. Lorsque vous êtes invité à entrer le mot de passe, saisissez votre mot de passe root MySQL.
sudo mysql -u root -pLorsque cela réussit, vous devriez obtenir l’interface MySQL.

Vous pouvez également vérifier les détails de l’état de votre serveur MySQL en entrant la requête suivante.
sudo systemctl status mysqlVous devriez recevoir une sortie similaire à ceci - Vous vous êtes connecté au Percona XtraDB Cluster MySQL 8.0.

À ce stade, vous avez maintenant configuré le fichier /etc/hosts de votre système, installé et configuré le pare-feu ufw, et également installé le Percona XtraDB Cluster MySQL 8.0 sur tous vos serveurs. Vous êtes prêt à commencer à configurer Percona XtraDB Cluster.
Arrêter le service Percona XtraDB Cluster
Avant de commencer à configurer le Percona XtraDB Cluster, vous devez vous assurer que le serveur MySQL est arrêté.
Entrez la commande systemctl suivante pour arrêter le serveur MySQL sur vos serveurs. Ensuite, vérifiez l’état du serveur MySQL pour vous assurer que le service est arrêté.
sudo systemctl stop mysqlUne sortie ‘inactive (dead)‘ confirme que le serveur MySQL est arrêté.
Vous pouvez maintenant commencer à initialiser le Percona XtraDB Cluster pour le premier nœud ‘pxc01‘.
Copier les certificats SSL/TLS
Percona XtraDB Cluster a deux types de chiffrement de trafic : une connexion client-serveur et un trafic de réplication. Sur la dernière version de Percona XtraDB Cluster v8.0, tout le trafic de réplication est activé par défaut pour améliorer la sécurité.
Pendant l’installation de Percona XtraDB Cluster, SSL/TLS est automatiquement généré dans le répertoire de données ‘/var/lib/mysql‘. Entrez la commande suivante pour vérifier la liste des certificats SL/TLS dans le répertoire ‘/var/lib/mysql‘.
ls /var/lib/mysql/*.pemVous devriez voir trois types de certificats SSL/TLS, Client, Serveur et CA.
Pour créer et configurer Percona XtraDB Cluster, tous les serveurs doivent avoir les mêmes certificats CA et Serveur. Donc, vous devez copier les certificats CA et Serveur par défaut de ‘pxc01‘ vers ‘pxc02‘ et ‘pxc03‘.
Sur le serveur ‘pxc01‘, déplacez votre répertoire de travail vers le répertoire ‘/var/lib/mysql’.
cd /var/lib/mysqlEntrez la commande scp suivante pour copier les certificats CA et Serveur vers les serveurs ‘pxc02‘ et ‘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/mysqlVous recevrez une sortie similaire à ceci - Copier les certificats CA et Serveur de ‘pxc01‘ vers les serveurs ‘pxc02‘ et ‘pxc03‘.
Avec les certificats SSL/TLS copiés, vous pouvez initialiser le Percona XtraDB Cluster.
Initialiser Percona XtraDB Cluster sur le premier nœud
Dans cette section, vous allez initialiser le Percona XtraDB Cluster depuis le premier serveur nœud ‘pxc01‘. Assurez-vous d’exécuter les étapes suivantes sur le serveur ‘pxc01‘.
Ouvrez le fichier de configuration MySQL ‘/etc/mysql/my.cnf’ en utilisant la commande d’éditeur nano suivante.
sudo nano /etc/mysql/my.cnfAjoutez les lignes suivantes au fichier. Assurez-vous de changer la valeur de ‘wsrep_cluster_address‘ avec les adresses IP de tous vos serveurs. De plus, sur ‘wsrep_node_address‘, vous devez entrer l’adresse IP de ‘pxc01‘.
[mysqld]
datadir=/var/lib/mysql
user=mysql
# Chemin vers la bibliothèque Galera
wsrep_provider=/usr/lib/libgalera_smm.so
# L'URL de connexion au cluster contient les IP de pxc01, pxc02 et pxc03
wsrep_cluster_address=gcomm://192.168.5.15,192.168.5.16,192.168.5.17
# Afin que Galera fonctionne correctement, le format de binlog doit être ROW
binlog_format=ROW
# L'utilisation du moteur de stockage MyISAM n'est pas recommandée.
default_storage_engine=InnoDB
# Ce mode de verrouillage d'auto-incrément InnoDB est une exigence pour Galera
innodb_autoinc_lock_mode=2
# Adresse du nœud 1
wsrep_node_address=192.168.5.15
# Méthode SST
wsrep_sst_method=xtrabackup-v2
# Nom du cluster
wsrep_cluster_name=pxc_cluster
#pxc_strict_mode valeurs autorisées : 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.pemEnregistrez et fermez le fichier ‘/etc/mysql/my.cnf‘ lorsque vous avez terminé.

Ensuite, exécutez la commande systemctl suivante pour démarrer et initialiser le Percona XtraDB Cluster.
Le ‘mysql@bootstrap‘ est un service systemd qui est utilisé pour exécuter Percona XtraDB Cluster et cela est différent du service ‘mysql‘. Lors de la construction d’un serveur MySQL avec Percona XtraDB Cluster, le premier nœud doit être exécuté avec le service ‘mysql@bootstrap‘.
systemctl start [email protected]Une fois terminé, entrez la commande mysql suivante pour vous connecter à l’interface MySQL. Saisissez le mot de passe root de votre serveur MySQL.
sudo mysql -u root -pEntrez la requête MySQL suivante pour vous assurer que le cluster est initialisé.
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 l’ensemble d’écriture.

Avec le premier nœud initialisé, vous êtes prêt à ajouter le deuxième et le troisième nœud ‘pxc02‘ et ‘pxc03‘ au Percona XtraDB Cluster.
Ajouter Node2 et Node3 au Cluster
Ajouter de nouveaux nœuds au Percona XtraDB Cluster est similaire à l’initialisation du premier nœud. Voici les étapes simples que vous devrez suivre :
- Modifier le fichier de configuration MySQL ‘/etc/mysql/my.cnf’.
- Démarrer le serveur MySQL
- Se connecter à l’interface MySQL et vérifier le Percona XtraDB Cluster.
Maintenant, commençons à ajouter ‘pxc02‘ et ‘pxc03‘ au Percona XtraDB Cluster.
Ajouter le nœud pxc02
Connectez-vous au serveur ‘pxc02‘ et ouvrez le fichier de configuration MySQL ‘/etc/mysql/my.cnf‘ en utilisant la commande d’éditeur nano suivante.
sudo nano /etc/mysql/my.cnfAjoutez les lignes suivantes au fichier et assurez-vous de changer la valeur de ‘wsrep_cluster_address‘ avec les adresses IP de tous vos serveurs. De plus, sur ‘wsrep_node_address‘, vous devez entrer l’adresse IP de ‘pxc02‘.
[mysqld]
datadir=/var/lib/mysql
user=mysql
# Chemin vers la bibliothèque Galera
wsrep_provider=/usr/lib/libgalera_smm.so
# L'URL de connexion au cluster contient les IP de pxc01, pxc02 et pxc03
wsrep_cluster_address=gcomm://192.168.5.15,192.168.5.16,192.168.5.17
# Afin que Galera fonctionne correctement, le format de binlog doit être ROW
binlog_format=ROW
# L'utilisation du moteur de stockage MyISAM n'est pas recommandée
default_storage_engine=InnoDB
# Ce mode de verrouillage d'auto-incrément InnoDB est une exigence pour Galera
innodb_autoinc_lock_mode=2
# Adresse du nœud #2
wsrep_node_address=192.168.5.16
# Nom du cluster
wsrep_cluster_name=pxc_cluster
# Méthode 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.pemEnregistrez et fermez le fichier ‘/etc/mysql/my.cnf‘ lorsque vous avez terminé.

Ensuite, démarrez le serveur MySQL en entrant l’utilitaire de commande systemctl suivant. Ensuite, vérifiez l’état du serveur MySQL pour vous assurer qu’il fonctionne.
Cela démarrera le service MySQL et rejoindra le Percona XtraDB Cluster initialisé sur le serveur ‘pxc01‘.
sudo systemctl start mysql
sudo systemctl status mysql
Pour vérifier que le processus est réussi, vous devez vous connecter à l’interface MySQL. Entrez la commande suivante pour vous connecter à l’interface MySQL en tant qu’utilisateur root. Lorsque vous y êtes invité, saisissez votre mot de passe root MySQL.
sudo mysql -u root -pUne fois connecté, entrez la requête MySQL suivante pour vérifier l’état du Percona XtraDB Cluster.
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 pxc01 et pxc02. 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 l’ensemble d’écriture.

Avec cela, le Percona XtraDB Cluster fonctionne maintenant avec deux nœuds/serveurs pxc01 et pxc02. Ensuite, passez au serveur pxc03 pour l’ajouter au Percona XtraDB Cluster.
Ajouter le nœud pxc03
Connectez-vous au serveur ‘pxc03‘ et ouvrez le fichier de configuration MySQL ‘/etc/mysql/my.cnf‘ en utilisant la commande d’éditeur nano suivante.
sudo nano /etc/mysql/my.cnfAjoutez les lignes suivantes au fichier et assurez-vous de changer la valeur de ‘wsrep_cluster_address‘ avec les adresses IP de tous vos serveurs. De plus, sur ‘wsrep_node_address‘, vous devez entrer l’adresse IP de ‘pxc03‘.
[mysqld]
datadir=/var/lib/mysql
user=mysql
# Chemin vers la bibliothèque Galera
wsrep_provider=/usr/lib/libgalera_smm.so
# L'URL de connexion au cluster contient les IP de pxc01, pxc02 et pxc03
wsrep_cluster_address=gcomm://192.168.5.15,192.168.5.16,192.168.5.17
# Afin que Galera fonctionne correctement, le format de binlog doit être ROW
binlog_format=ROW
# L'utilisation du moteur de stockage MyISAM n'est pas recommandée
default_storage_engine=InnoDB
# Ce mode de verrouillage d'auto-incrément InnoDB est une exigence pour Galera
innodb_autoinc_lock_mode=2
# Adresse du nœud #3
wsrep_node_address=192.168.5.17
# Nom du cluster
wsrep_cluster_name=pxc_cluster
# Méthode 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.pemEnregistrez et fermez le fichier ‘/etc/mysql/my.cnf‘ lorsque vous avez terminé.

Ensuite, démarrez le serveur MySQL en entrant l’utilitaire de commande systemctl suivant. Ensuite, vérifiez l’état du serveur MySQL pour vous assurer qu’il fonctionne.
Cela démarrera le service MySQL et rejoindra le Percona XtraDB Cluster.
sudo systemctl start mysql
Pour vérifier que le processus est réussi, vous devez vous connecter à l’interface MySQL. Entrez la commande suivante pour vous connecter à l’interface MySQL en tant qu’utilisateur root. Lorsque vous y êtes invité, saisissez votre mot de passe root MySQL.
sudo mysql -u root -pUne fois connecté, entrez la requête MySQL suivante pour vérifier l’état du Percona XtraDB Cluster.
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 que trois serveurs sont 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 pxc01, pxc02 et pxc03. 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 l’ensemble d’écriture.

Avec cela, le Percona XtraDB Cluster fonctionne maintenant avec trois serveurs Debian pxc01, pxc02 et pxc03. Vous avez maintenant terminé le déploiement du Percona XtraDB Cluster avec trois serveurs Debian 11. Dans l’étape suivante, vous allez vérifier la réplication de la base de données entre les serveurs Percona XtraDB Cluster.
Tester la réplication
Connectez-vous à l’interface MySQL depuis le serveur ‘pxc02‘ et créez une nouvelle base de données ‘percona‘.
sudo mysql -u root -p
CREATE DATABASE percona;Maintenant, passez au serveur ‘pxc03‘, connectez-vous à l’interface MySQL via l’utilisateur root MySQL, puis passez à la base de données ‘percona‘ que vous avez créée depuis le serveur ‘pxc02‘.
sudo mysql -u root -p
USE percona;Lorsque cela réussit, vous devriez recevoir une sortie telle que ‘Base de données changée’. Cela confirme également que la base de données ‘percona’ est répliquée sur les serveurs Percona XtraDB Cluster.

Ensuite, exécutez la requête MySQL suivante pour créer une nouvelle table ‘example‘ depuis le serveur ‘pxc03‘.
CREATE TABLE example (node_id INT PRIMARY KEY, node_name VARCHAR(30));
Ensuite, revenez au serveur ‘pxc01‘ et exécutez la requête suivante pour insérer de nouvelles données dans la base de données ‘percona‘.
INSERT INTO percona.example VALUES (1, 'pxc01');
INSERT INTO percona.example VALUES (2, 'pxc02');
INSERT INTO percona.example VALUES (3, 'pxc03');Enfin, revenez au serveur ‘pxc02‘ et exécutez la requête suivante pour récupérer les données de la base de données ‘percona‘ et de la table ‘example‘.
SELECT * FROM percona.example;Vous devriez recevoir une sortie comme celle-ci - Les données sont disponibles sur le serveur ‘pxc02‘ du Percona XtraDB Cluster. Avec cela, la réplication entre les serveurs Percona XtraDB Cluster fonctionne, ce qui signifie que votre déploiement de Percona XtraDB Cluster sur des serveurs Debian 11 est également réussi.

Conclusion
Dans ce tutoriel, vous avez installé et configuré Percona XtraDB Cluster avec trois serveurs Debian 11. Vous avez initialisé Percona XtraDB Cluster et ajouté deux nœuds/serveurs au Percona XtraDB Cluster. De plus, vous avez sécurisé Percona XtraDB Cluster via le pare-feu ufw.
En plus de cela, vous avez également sécurisé Percona XtraDB Cluster en chiffrant le trafic entre tous les serveurs à l’aide de certificats SSL/TLS. Cela est réalisé avec l’option ‘pxc-encrypt-cluster-traffic’, activée par défaut.
Avec cela, vous pouvez maintenant commencer à ajouter plus de serveurs à votre Percona XtraDB Cluster en utilisant les étapes que vous avez apprises et en ajoutant des nœuds supplémentaires qui permettront une haute disponibilité et un équilibrage de charge sur Percona XtraDB Cluster. Pour en savoir plus, visitez la documentation officielle de Percona XtraDB Cluster.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.