Torna al blog

Configurazione della replica in MySQL su Ubuntu

Configurazione della replica in MySQL su Ubuntu

La replicazione MySQL è una funzionalità interessante che consente agli utenti di gestire più copie di uno o più database MySQL. I dati vengono copiati automaticamente da sorgente a replica database. Può essere utile in numerose situazioni, come lavorare con i dati senza compromettere il database principale, il backup dei dati o la scalabilità dell'accesso al database, ecc.

In questa guida, esamineremo i passaggi per configurare un'istanza MySQL su un server come database sorgente, quindi configurare un'istanza MySQL su un altro server per funzionare come sua replica.

Prerequisiti

Questa guida mostrerà un esempio molto semplice di replicazione MySQL. Coinvolge una sorgente e una replica database. Il sorgente database è la copia primaria del database mentre il replica database sarà la replica del sorgente database. Per la nostra dimostrazione, due server sono configurati con i seguenti indirizzi IP:

  • Server sorgente: 31.171.240.179
  • Server replica: 31.171.250.139

Ogni server è configurato con l'ultima Ubuntu 20.04 server configurazione. Per prima cosa, segui i passaggi del tutorial che mostrano come configurare il tuo server Ubuntu. Nota che il numero di database di replica può essere superiore. Questa guida presuppone che tu abbia già installato e configurato MySQL. Hai bisogno di aiuto con l'installazione di MySQL? Questa guida mostra in dettaglio i passaggi di installazione e utilizzo di base di MySQL.

In breve, ecco i pacchetti di cui hai bisogno:

I firewall su entrambi i sistemi devono essere configurati per consentire il traffico da entrambi i sistemi sulla porta 3306. È la porta predefinita per MySQL. Puoi saperne di più sulle basi di UFW con una dimostrazione dal nostro post sul blog.

Configurazione del database sorgente

  • Modifica della configurazione di MySQL

MySQL utilizza my.cnf come file di configurazione principale. Aggiorneremo my.cnf per designare il server come sorgente. Per prima cosa, apri il file di configurazione con un editor di testo:

Quindi, aggiungi le seguenti righe sotto la sezione mysqld:

Replication in MySQL 4

Cosa significano queste righe?

  • bind-address: questa è la voce che definisce l'associazione tra un servizio e un indirizzo IP. Per impostazione predefinita, il valore potrebbe essere 127.0.0.1 (localhost). Il nuovo valore sarà l'indirizzo IP del server.
  • server-id: nella replicazione MySQL, ogni server deve avere un ID server univoco. Può essere qualsiasi numero. Per semplicità, è impostato su 1.
  • log_bin: memorizza i dettagli reali della replicazione. Il database di replica copierà tutto ciò che è registrato nel log.
  • binlog_do_db: questa voce designa il database che sarà oggetto di replicazione sul server di replica. Può esserci più di un database. Qui, il database di esempio è newdatabase.

Dopo aver apportato le modifiche, salva il file di configurazione. MySQL richiede il riavvio per caricare le modifiche in my.cnf:

  • Concessione dei permessi all'utente di replica

Il passaggio successivo consiste nel creare un utente di replica e concedere i privilegi appropriati. Deve essere fatto dalla shell di MySQL. Per prima cosa, avvia la shell di MySQL:

Quindi, crea un utente dedicato per il database di replica. Modifica il nome utente e la password in modo appropriato:

Ora, concedi i privilegi appropriati all'utente:

Puoi saperne di più su utenti e permessi di MySQL dal nostro post sul blog. Successivamente, ricarica la tabella dei privilegi per rendere effettive le modifiche:

FLUSH PRIVILEGES

  • Modifica del database

Abbiamo bisogno di una copia del database di origine sulla replica. È possibile creare manualmente la struttura. Tuttavia, nella maggior parte dei casi, ciò è piuttosto scomodo. Ecco perché esportare direttamente il database è la soluzione ottimale. In questo esempio, il database di origine è newdatabase. Cambia il database corrente:

Il seguente comando bloccherà il database, impedendo qualsiasi nuova modifica:

Quindi, controlla lo stato del database:

Replication in MySQL 3

Da questa posizione, il database replica inizierà a replicare dall'origine. Questi numeri saranno utili in seguito, quindi conservane una traccia. Se vengono apportate modifiche dalla stessa finestra, MySQL sbloccherà automaticamente il database. Pertanto, si consiglia di eseguire i passaggi seguenti in un'altra scheda o finestra del terminale. Il database è ancora bloccato. Esportalo in un file SQL portatile:

L'attività è ora completata. Successivamente, sblocca il database:

Infine, esci dalla shell:

Configurazione della replica

È giunto il momento di configurare il database replica.

  • Importazione del database di origine

Abbiamo bisogno di una copia del database di origine sul server replica. Utilizzeremo il file SQL esportato in precedenza per farlo. Avvia la shell di MySQL:

Dopodiché, crea un database vuoto utilizzando lo stesso nome di database:

Successivamente, esci dalla shell:

Ora, importa il file SQL nel database:

sudo mysql -u

  • Modifica della configurazione di MySQL

Ci sono alcune cose da dichiarare nel file di configurazione di MySQL. Apri il file di configurazione in un editor di testo:

Le seguenti voci andranno sotto la sezione mysqld. Altrimenti, non funzionerà. La prima è l'ID del server. Come accennato in precedenza, deve essere univoco per tutti i server nella configurazione di replica origine-replica. A scopo dimostrativo, è impostato su 2:

Successivamente, aggiungi le seguenti righe:

Replication in MySQL 2

Qui, solo relay-log è una nuova voce. È il log che il server replica crea durante la replica. Il formato del log è lo stesso del log binario. Salva il file di configurazione e riavvia MySQL:

  • Abilitazione della replica

Infine, siamo pronti per abilitare la replica dall'interno di MySQL. Avvia la shell di MySQL:

Esegui il seguente comando. Innanzitutto, modifica l'indirizzo IP, il nome utente e le password di conseguenza:

CHANGE MASTER TO MASTER_HOST

Il comando esegue quanto segue:

  • Il server corrente viene contrassegnato come replica del server di origine.
  • Il server replica dispone delle credenziali di accesso corrette.
  • Il server replica sa da dove iniziare la replica. Ricordi lo stato del database che abbiamo controllato sul server di origine? Il file di log di origine e la posizione del log provengono da lì.

Infine, attiva il server replica:

START REPLICA

  • Varie

Hai bisogno di controllare i dettagli dello stato attuale della replica? Esegui il seguente comando nella shell di MySQL. Il \G alla fine serve a riorganizzare i testi per renderli più leggibili:

Replication in MySQL 1

Se c'è un problema di connessione, prova ad avviare il server replica per saltarlo:

Conclusione

La replica di MySQL ha molte implicazioni. È solo una breve dimostrazione della sua forma base. Tuttavia, può essere facilmente estesa a configurazioni multiple sorgente-replica. Gli stessi passaggi si applicheranno anche a qualsiasi configurazione complessa di livello superiore. È sempre una buona idea testare qualsiasi configurazione in seguito. Prova a eseguire alcuni insertdelete o update comandi sul database sorgente. Se la configurazione funziona, il database replica dovrebbe acquisire tutto correttamente.

Inoltre, puoi dare un'occhiata ad altre risorse del nostro blog che trattano ciò che puoi fare con MySQL:

Buon computing!

 

author

Hark Labs

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.