Database Clustering · 14 min read · Sep 26, 2025

Come installare Percona XtraDB Cluster su Rocky Linux 9

Percona XtraDB Cluster è una soluzione di clustering di database completamente open-source per MySQL. Ti consente di creare un’implementazione del server MySQL ad alta disponibilità con robustezza e alte prestazioni. L’ultima versione di Percona XtraDB Cluster è 8.0, che è completamente compatibile con MySQL Server Community Edition 8.0.

Percona XtraDB Cluster fornisce funzionalità come la replicazione sincrona, la replicazione multi-sorgente, la provisioning automatico dei nodi, la configurazione automatica della crittografia SSL e prestazioni ottimizzate.

Percona XtraDB Cluster garantisce l’alta disponibilità del tuo server database, fornisce scalabilità lineare e previene tempi di inattività e perdita di dati.

Questa guida ti mostrerà come configurare un cluster MySQL tramite Percona XtraDB Cluster (PXC) su server Rocky Linux 9. Installerai Percona XtraDB Cluster su più sistemi Rocky Linux e configurerai Percona XtraDB Cluster per abilitare la replicazione del database tra i server, quindi verificherai anche inserendo dati in un server e controllando i dati da un altro server.

Prerequisiti

Per completare questa guida, devi avere due o più server che eseguono Rocky Linux 9. Devi anche avere un utente non root con privilegi di amministratore sudo/root su tutti i server. Inoltre, SELinux deve essere in esecuzione in modalità permissiva.

Per questo esempio, verranno utilizzati tre server Rocky Linux 9. Di seguito sono riportati i dettagli dei server:

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

Se tutti i requisiti sono pronti, puoi iniziare l’installazione di Percona XtraDB Cluster.

Configurazione di /etc/hosts e Firewalld

In questo primo passaggio, configurerai il file /etc/hosts e firewalld su tutti i server Rocky Linux. Modificherai il file /etc/hosts e aggiungerai i dettagli degli indirizzi IP e dei nomi host per ciascun server, quindi aggiungerai alcune porte che saranno utilizzate da Percona XtraDB Cluster.

Di seguito sono riportati i dettagli delle porte di Percona XtraDB Cluster che devi aprire sul tuo firewall.

Ports   Used for  
---------------------------  
3306    MySQL client connection and SST (State Snapshot Transfer)  
4444    SST via Percona XtraBackup  
4567    write-set replication traffic (over TCP) and multicast replication (over TCP and UDP)  
4568    IST (Incremental State Transfer)

Per iniziare, apri il file ‘/etc/hosts’ utilizzando il seguente comando dell’editor nano.

sudo nano /etc/hosts

Aggiungi i dettagli del nome host e dell’indirizzo IP che saranno utilizzati per il cluster. Assicurati di modificare i dettagli con il tuo ambiente server.

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

Salva e chiudi il file quando hai finito.

Successivamente, inserisci il seguente comando ‘firewall-cmd‘ per aggiungere la tua subnet di rete interna come sorgente di fiducia. Con questo, solo le reti di fiducia saranno autorizzate ad accedere a tutti i server.

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

Ora apri alcune porte per Percona XtraDB Cluster e ricarica firewalld per applicare le modifiche. Un output ‘success‘ conferma che la nuova regola è stata aggiunta a firewalld.

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

Infine, inserisci il seguente comando ‘firewall-cmd’ per verificare l’elenco delle regole abilitate su firewalld.

sudo firewall-cmd --list-all

Il seguente output verrà stampato nel tuo terminale. Assicurati che tutte le porte che saranno utilizzate da Percona XtraDB Cluster siano elencate.

configurazione hostname e firewalld

Con il file /etc/hosts e firewalld configurati, installerai ora i pacchetti di Percona XtraDB Cluster.

Installazione di Percona XtraDB Cluster

In questa sezione, installerai Percona XtraDB Cluster su tutti i tuoi server Rocky Linux. Configurerai il repository di Percona XtraDB, quindi installerai il pacchetto di Percona XtraDB Cluster. Inoltre, alla fine, cambierai la password di root di MySQL predefinita su tutti i tuoi server.

Per prima cosa, devi aggiungere e abilitare il repository EPEL. Inserisci il seguente comando ‘dnf install’ per aggiungere il repository EPEL.

sudo dnf install epel-release

Ora inserisci il seguente comando per installare l’applicazione di rilascio di Percona. Immetti y quando richiesto e premi INVIO per procedere. Questo pacchetto fornisce uno strumento da riga di comando ‘percona-release‘ che può essere utilizzato per gestire i repository di Percona.

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

aggiungi repo percona

Successivamente, esegui il seguente comando ‘percona-release‘ per abilitare il repository di Percona XtraDB Cluster v8.0. Durante il processo, ti verrà chiesto di disabilitare il repository MySQL predefinito, immetti y per confermare e premi INVIO per procedere.

sudo percona-release setup pxc-80

Un messaggio di output ‘All done!‘ conferma che l’operazione è stata completata con successo.

abilita repo percona xtradb

Verifica l’elenco dei repository abilitati inserendo il comando ‘dnf repolist’ qui sotto. Dovresti vedere il repository ‘pxc-80-release’ abilitato e elencato nell’output con alcuni repository aggiuntivi come ‘prel-release’ e ‘tools-release’.

sudo dnf repolist

elenco repos

Ora inserisci il seguente comando ‘dnf install’ per installare il pacchetto di Percona XtraDB Cluster. Immetti y quando richiesto per confermare e premi INVIO per procedere.

sudo dnf install percona-xtradb-cluster

installa percona xtradb cluster

Quando ti viene chiesto di accettare la chiave GPG di Percona, immetti y e premi INVIO per confermare.

accetta chiave gpg

Una volta installato Percona XtraDB Cluster, inserisci il seguente comando systemctl per avviare e abilitare il servizio MySQL.

sudo systemctl start mysql  
sudo systemctl enable mysql

Ora verifica lo stato del servizio MySQL utilizzando il comando qui sotto. Un output ‘active (running)‘ conferma che MySQL è in esecuzione. E l’output ‘..; enabled..’ conferma che MySQL si avvierà automaticamente all’avvio del sistema.

sudo systemctl status mysql

verifica servizio mysql

Con Percona XtraDB Cluster in esecuzione, ora cambierai la password di root predefinita per tutti i tuoi server MySQL.

Inserisci il seguente comando per controllare la password generata di default per il tuo utente root MySQL. Copia la password di root MySQL predefinita.

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

Successivamente, accedi alla shell di MySQL tramite il comando ‘mysql‘ qui sotto. Quando ti viene chiesto di inserire la password, incolla la password di MySQL predefinita che hai copiato.

sudo mysql -u root -p

Una volta effettuato l’accesso, dovresti vedere la shell di MySQL con un prompt come questo ‘mysql>‘.

accedi alla shell mysql

Inserisci la seguente query MySQL per cambiare la password predefinita per l’utente root di MySQL, quindi esci.

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

cambia password di root mysql predefinita

Infine, prima di configurare il Percona XtraDB Cluster, devi fermare il servizio MySQL. Inserisci il seguente comando ‘systemctl’ per fermare il servizio MySQL su tutti i server.

sudo systemctl stop mysql

Con Percona XtraDB Cluster installato, la configurazione di root di MySQL e il servizio MySQL fermato, ora sei pronto per configurare e impostare il cluster.

Copia certificati SSL/TLS

Poiché il Percona XtraDB Cluster 8.0, la connessione predefinita tra i server nel cluster deve essere crittografata. Per impostare la crittografia tra i server, devi avere gli stessi certificati SSL/TLS su tutti i server.

In questa sezione, copierai i certificati SSL/TLS generati di default dal server ‘pxc-rock01‘ ai server ‘pxc-rock02‘ e ‘pxc-rock03‘.

Sul server ‘pxc-rock01‘, inserisci il seguente comando per verificare i certificati disponibili. Con questo, dovresti copiare i file di certificato ‘server-cert.pem‘, ‘server-key.pem‘ e ‘ca.pem‘ su entrambi i server pxc-rock02 e pxc-rock03.

ls /var/lib/mysql/*.pem

Sposta la tua directory di lavoro in ‘/var/lib/mysql‘.

cd /var/lib/mysql

Ora inserisci il seguente comando scp per copiare i file di certificato SSL/TLS su entrambi i server pxc-rock02 e 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

Di seguito è riportato l’output durante il processo di copia dei certificati SSL/TLS dal pxc-rock01 al server pxc-rock02.

copia certificati pxc-rock02

E di seguito è riportato l’output durante il processo di copia dei certificati SSL/TLS dal pxc-rock01 al server pxc-rock03.

Inizializza Percona XtraDB Cluster su pxc-rock01

Per prima cosa, inizializzerai il Percona XtraDB Cluster dal server pxc-rock01. Per farlo, dovrai modificare il file di configurazione del server MySQL ‘/etc/my.cnf‘, quindi avviare il servizio ‘mysql@bootstrap‘.

Apri il file di configurazione di MySQL ‘/etc/my.cnf’ utilizzando il seguente comando dell’editor nano.

sudo nano /etc/my.cnf

Aggiungi l’elenco degli indirizzi IP del tuo server Percona XtraDB Cluster al parametro ‘wsrep_cluster_address‘ e aggiungi il parametro ‘default_storage_engine=InnoDB‘.

# Cluster connection URL contains the IPs of pxc-rock01, pxc-rock02, and pxc-rock03  
wsrep_cluster_address=gcomm://192.168.5.80,192.168.5.81,192.168.5.82  
  
# Using the MyISAM storage engine is not recommended.  
default_storage_engine=InnoDB

wsrep engine default storage engine

Cambia il ‘wsrep_node_address‘ con l’indirizzo IP del server corrente, il ‘wsrep_node_name‘ con il nome host del sistema e il ‘wsrep_cluster_name‘ con il nome del tuo cluster.

# Node 1 address  
wsrep_node_address=192.168.5.80  
# Node Name  
wsrep_node_name=pxc-rock01  
  
# Cluster name  
wsrep_cluster_name=pxc-cluster

nome nodo indirizzo e nome cluster

Infine, in fondo alla riga, aggiungi la seguente configurazione per abilitare una connessione SSL/TLS sicura tra i server Percona XtraDB Cluster e la connessione sst.

# enable ssl/tls connection  
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

Salva e chiudi il file quando hai finito.

Successivamente, inserisci il seguente comando systemctl per avviare il servizio ‘mysql@bootstrap‘ e inizializzare il primo server Percona XtraDB Cluster.

systemctl start [email protected]

Per verificare e assicurarti che l’inizializzazione del Percona XtraDB Cluster sia avvenuta con successo, dovresti accedere alla shell di MySQL e controllare lo stato ‘wsrep%‘.

Inserisci il seguente comando ‘mysql’ per accedere al server MySQL come utente ‘root‘. Immetti la tua nuova password di root MySQL quando richiesto.

sudo mysql -u root -p

Dopo aver effettuato l’accesso, inserisci la seguente query per controllare i dettagli dello stato ‘wsrep%‘.

SHOW STATUS LIKE 'wsrep%';

Dovresti ricevere un output come questo - Nella sezione ‘wsrep_cluster_size‘ vedrai il valore ‘1‘, il che significa che il Percona XtraDB Cluster è stato inizializzato con 1 server. Riceverai anche gli indirizzi IP dei server nella sezione ‘wsrep_incoming_address‘. Infine, il nodo è nello stato Synced, il che significa che è completamente connesso e pronto per la replicazione del set di scrittura.

verifica percona xtradb cluster

Con questo, il primo server del Percona XtraDB Cluster ‘pxc-rock01‘ è stato inizializzato. Nel passaggio successivo, aggiungerai i server ‘pxc-rock02‘ e ‘pxc-rock03‘ al cluster.

Aggiunta del server pxc-rock02 al Percona XtraDB Cluster

Dopo che il primo Percona XtraDB Cluster è stato inizializzato, ora aggiungerai il server pxc-rock02 al cluster. Il modo per aggiungere un server al Percona XtraDB Cluster è simile al processo di inizializzazione, devi modificare il file di configurazione del server MySQL predefinito ‘/etc/my.cnf‘ e definire l’elenco dei server per il cluster, quindi avviare normalmente il servizio MySQL.

Inserisci il seguente comando dell’editor nano per aprire il file di configurazione di MySQL ‘/etc/my.cnf‘.

sudo nano /etc/my.cnf

Aggiungi l’elenco degli indirizzi IP del tuo server Percona XtraDB Cluster al parametro ‘wsrep_cluster_address‘ e aggiungi il parametro ‘default_storage_engine=InnoDB‘.

# Cluster connection URL contains the IPs of pxc-rock01, pxc-rock02, and pxc-rock03  
wsrep_cluster_address=gcomm://192.168.5.80,192.168.5.81,192.168.5.82  
  
# Using the MyISAM storage engine is not recommended.  
default_storage_engine=InnoDB

wsrep indirizzo e motore db predefinito

Cambia il ‘wsrep_node_address‘ con l’indirizzo IP del server corrente, il ‘wsrep_node_name‘ con il nome host del sistema e il ‘wsrep_cluster_name‘ con il nome del tuo cluster.

# Node #2 address  
wsrep_node_address=192.168.5.81  
# Node Name  
wsrep_node_name=pxc-rock02  
  
# Cluster name  
wsrep_cluster_name=pxc-cluster

nome nodo nome nodo e indirizzo cluster

Infine, in fondo alla riga, aggiungi la seguente configurazione per abilitare una connessione SSL/TLS sicura tra i server Percona XtraDB Cluster e la connessione sst.

# enable ssl/tls connection  
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

Salva e chiudi il file quando hai finito.

Successivamente, inserisci il seguente comando systemctl per avviare il servizio MySQL. Questo farà anche sì che il server ‘pxc-rock02‘ si unisca al Percona XtraDB Cluster inizializzato.

sudo systemctl start mysql

Infine, per assicurarti che il server pxc-rock02 sia stato aggiunto al Percona XtraDB Cluster, devi accedere alla shell di MySQL come utente root tramite il seguente comando. Quando richiesto, immetti la tua password di root MySQL.

sudo mysql -u root -p

Ora inserisci la seguente query per controllare i dettagli dello stato ‘wsrep%‘.

SHOW STATUS LIKE 'wsrep%';

Dovresti ricevere un output come questo - Nella sezione ‘wsrep_cluster_size‘ vedrai il valore ‘2‘, il che significa che ci sono due server disponibili nel Percona XtraDB Cluster. Riceverai anche gli indirizzi IP dei server nella sezione ‘wsrep_incoming_address‘, che sono gli indirizzi IP dei server pxc-rock01 e pxc-rock02. Infine, il nodo è nello stato Synced, il che significa che è completamente connesso e pronto per la replicazione del set di scrittura.

verifica cluster pxc

Aggiunta del server pxc-rock03 al Percona XtraDB Cluster

In questa sezione, ora aggiungerai il terzo server pxc-rock03 al Percona XtraDB Cluster.

Apri il file di configurazione ‘/etc/my.cnf‘ utilizzando il seguente comando dell’editor nano.

sudo nano /etc/my.cnf

Aggiungi l’elenco degli indirizzi IP del tuo server Percona XtraDB Cluster al parametro ‘wsrep_cluster_address‘ e aggiungi il parametro ‘default_storage_engine=InnoDB‘.

# Cluster connection URL contains the IPs of pxc-rock01, pxc-rock02, and pxc-rock03  
wsrep_cluster_address=gcomm://192.168.5.80,192.168.5.81,192.168.5.82  
  
# Using the MyISAM storage engine is not recommended.  
default_storage_engine=InnoDB

wsrep indirizzo e motore di archiviazione predefinito

Cambia il ‘wsrep_node_address‘ con l’indirizzo IP del server corrente, il ‘wsrep_node_name‘ con il nome host del sistema e il ‘wsrep_cluster_name‘ con il nome del tuo cluster.

# Node #3 address  
wsrep_node_address=192.168.5.82  
# Node Name  
wsrep_node_name=pxc-rock02  
  
# Cluster name  
wsrep_cluster_name=pxc-cluster

nome nodo e nome cluster e indirizzo

Infine, in fondo alla riga, aggiungi la seguente configurazione per abilitare una connessione SSL/TLS sicura tra i server Percona XtraDB Cluster e la connessione sst.

# enable ssl/tls connection  
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

Salva e chiudi il file quando hai finito.

Successivamente, inserisci il seguente comando systemctl per avviare il servizio MySQL e unire il server corrente pxc-rock03 al Percona XtraDB Cluster.

sudo systemctl start mysql

Infine, inserisci il seguente comando mysql per accedere alla shell di MySQL e verificare lo stato ‘wsrep%‘. Quando richiesto, immetti la tua password di root MySQL.

sudo mysql -u root -p

Ora inserisci la seguente query per controllare i dettagli dello stato ‘wsrep%‘.

SHOW STATUS LIKE 'wsrep%';

Dovresti ricevere un output come questo - Nella sezione ‘wsrep_cluster_size‘ vedrai il valore ‘3‘, il che significa che ci sono tre server disponibili nel Percona XtraDB Cluster. Riceverai anche gli indirizzi IP dei server nella sezione ‘wsrep_incoming_address‘, che sono gli indirizzi IP dei server pxc-rock01, pxc-rock02 e pxc-rock03. Infine, il nodo è nello stato Synced, il che significa che è completamente connesso e pronto per la replicazione del set di scrittura.

verifica cluster pxc-roc03

A questo punto, hai ora configurato Percona XtraDB Cluster con tre diversi server Rocky Linux 9. E con questo, la replicazione del database dovrebbe funzionare tra i server su Percona XtraDB Cluster. Nel passaggio successivo, verificherai la replicazione del tuo database tra più server.

Test della replicazione del database

In questa sezione, verificherai la replicazione del database su Percona XtraDB Cluster. Questo garantirà che la tua installazione sia stata completata con successo.

Per prima cosa, accedi alla shell di MySQL dal server pxc-rock02 e crea un nuovo database chiamato ‘testdb‘.

sudo mysql -u root -p  
CREATE DATABASE testdb;

crea database pxc-rock02

Ora spostati sul server pxc-rock03, connettiti alla shell di MySQL tramite un utente root, quindi cambia il database di lavoro predefinito in ‘testdb‘.

sudo mysql -u root -p  
USE testdb;

Inserisci la seguente query per creare una nuova tabella chiamata ‘table1‘.

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

crea tabella pxc-rock03

Successivamente, spostati sul server pxc-rock01, accedi alla shell di MySQL, quindi inserisci nuovi dati nel database ‘testdb‘ tramite la query ‘INSERT‘ qui sotto.

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

inserisci dati

Una volta aggiunti i dati, torna al server pxc-rock02 e inserisci la query SELECT qui sotto per recuperare tutti i dati disponibili nel database ‘testdb‘ e nella tabella ‘table1‘.

SELECT * FROM testdb.table1;

Se la replicazione ha avuto successo, dovresti avere i tuoi dati inseriti disponibili sul server pxc-rock02. I tuoi dati saranno memorizzati in tutti i server del Percona XtraDB Cluster.

controlla dati

Questo conferma che l’installazione del Percona XtraDB Cluster sui server Rocky Linux 9 è stata completata con successo.

Conclusione

Hai installato e distribuito Percona XtraDB Cluster in questa guida su tre server Rocky Linux 9. Hai imparato come installare Percona XtraDB Cluster, proteggere l’implementazione tramite firewalld, inizializzare il cluster e anche aggiungere nodi al cluster.

In aggiunta a ciò, hai anche protetto l’installazione di Percona XtraDB Cluster crittografando il traffico tra tutti i server utilizzando certificati SSL/TLS e l’opzione ‘pxc-encrypt-cluster-traffic’, che è abilitata per impostazione predefinita su Percona XtraDB Cluster 8.0.

Con questo, puoi aggiungere più server al tuo attuale Percona XtraDB Cluster utilizzando i passaggi che hai appreso per aggiungere i server pxc-rock02 e pxc-rock03. Oppure puoi anche configurare il bilanciamento del carico e l’alta disponibilità con applicazioni di terze parti come ProxySQL e HAPROXY. Per saperne di più, visita la documentazione ufficiale di Percona XtraDB Cluster.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.