![OH MIO DIO!! Oltre 10 milioni di utenti utilizzano questa falsa app Android](/f/66cf3c2891ee26693a4de46fc12228ef.png?width=100&height=100)
La replica dei dati è il processo di copia dei dati su più server per migliorare la disponibilità dei dati e migliorare l'affidabilità e le prestazioni di un'applicazione. In MySQL replica, i dati vengono copiati da un database dal server master ad altri nodi in tempo reale per garantire la coerenza dei dati e anche per fornire backup e ridondanza.
In questa guida, dimostriamo come è possibile impostare MySQL (Padrone-schiavo) replica in Distribuzioni basate su RHEL ad esempio CentOS, Fedora, Linux roccioso, e AlmaLinux.
Allora, ecco il nostro MySQL configurazione del laboratorio di replica.
Maestro MySQL - 10.128.0.14. Slave MySQL - 10.128.15.211.
Iniziamo…
Inizieremo installando il MySQL database su entrambi i maestro e Schiavo server.
$ sudo dnf install @mysql.
Una volta completata l'installazione, fare in modo di avviare il server del database.
$ sudo systemctl start mysqld.
Quindi abilitalo per l'avvio all'avvio del sistema o al riavvio.
$ sudo systemctl abilita mysqld.
Successivamente, confermare che il MySQL il server di database è in esecuzione come mostrato:
$ sudo systemctl status mysqld.
Il prossimo passo è mettere in sicurezza il MySQL database su entrambi i maestro e Schiavo server. Questo perché le impostazioni predefinite non sono sicure e presentano alcune scappatoie che possono essere facilmente sfruttate dagli hacker.
Quindi, per rafforzare MySQL, esegui il comando:
$ sudo mysql_secure_installation.
Innanzitutto, ti verrà richiesto di impostare il MySQL password di root. Assicurati di fornire una password di root sicura, preferibilmente con più di 8 caratteri che sono un mix di caratteri maiuscoli, minuscoli, speciali e numerici.
Per le restanti richieste, digita 'S'
per modificare il server del database alle impostazioni consigliate.
Una volta terminata l'installazione e l'indurimento MySQL sul nodo master e slave, il prossimo è configurare il nodo master.
Il prossimo passo è configurare il Maestro nodo e concedere il Schiavo nodo di accesso ad esso. Per prima cosa, dobbiamo modificare il mysql-server.cnf file di configurazione.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf.
Aggiungi le seguenti righe sotto il [mysqld]
sezione.
indirizzo-bind = 10.128.0.14. id-server = 1. log_bin = mysql-bin.
Una volta fatto, salva le modifiche ed esci. Quindi riavviare il MySQL server.
$ sudo sysemctl riavvia mysqld.
Quindi, accedi a MySQL conchiglia.
$ sudo mysql -u root -p.
Eseguire i seguenti comandi per creare un utente del database che verrà utilizzato per associare il master e lo slave per la replica.
mysql> CREATE USER 'replica'@'10.128.15.211' IDENTIFICATO DA '[e-mail protetta]'; mysql> CONCEDERE SLAVE DI REPLICA SU *.*TO 'replica'@'10.128.15.211';
Applica le modifiche ed esci da MySQL server.
mysql> PRIVILEGI DI FLUSH; mysql> ESCI;
Verificare lo stato del master.
mysql> MOSTRA STATO PRINCIPALE\G.
Prendere nota del nome del file e della posizione. Ne avrai bisogno in seguito durante la configurazione dello slave per la replica. Nel nostro caso, abbiamo il nome del file come mysql-bin.000001
e posizione 1232.
Ora torna al nodo Slave. Ancora una volta, modifica il mysql-server.cnf file di configurazione.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf.
Come prima, incolla queste righe sotto [mysqld]
sezione. Modificare l'indirizzo IP in modo che corrisponda all'IP dello slave. Inoltre, assegna un diverso id-server. Qui gli abbiamo assegnato il valore di 2.
indirizzo-bind = 10.128.15.211. id-server = 2. log_bin = mysql-bin.
Salva le modifiche ed esci dal file. Quindi riavviare il server del database.
$ sudo systemctl riavvia mysqld.
Per configurare il Schiavo nodo da replicare dal nodo Master, accedere al server MySQL dello Slave.
$ sudo mysql -u root -p.
Innanzitutto, interrompi i thread di replica:
mysql> STOP SLAVE;
Quindi eseguire il comando seguente per configurare il nodo slave per replicare i database dal master.
mysql> CAMBIA MASTER IN MASTER_HOST='10.128.0.14', MASTER_USER='replica', MASTER_PASSWORD='[e-mail protetta]', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1232;
Nota che il MASTER_LOG_FILE e MASTER_LOG_POS i flag corrispondono al file e Posizione valori da Maestro nodo alla fine del passaggio 1.
Il MASTER_HOST, UTENTE_MASTER, e PASSWORD PRINCIPALE corrispondono rispettivamente all'indirizzo IP master, all'utente di replica e alla password dell'utente di replica.
Quindi avviare i thread di replica slave:
mysql> INIZIA SLAVE;
Ora, per verificare se la replica tra il nodo master e slave funziona, accedi al server del database MySQL sul nodo master:
$ sudo mysql -u root -p.
Crea un database di prova. Qui si chiama il nostro database di test replica_db.
mysql> CREA DATABASE replication_db;
Verificare l'esistenza del database.
mysql> MOSTRA DATABASE;
Ora vai al nodo slave, accedi al server MySQL e conferma che il replica_db la banca dati è presente. Dall'output sotto, possiamo vedere che il database è presente. Questa è la conferma che la replica è avvenuta dal nodo master al nodo slave.
mysql> MOSTRA DATABASE;
E questo è tutto, abbiamo dimostrato con successo come è possibile impostare un MySQL modello di replica master-slave in grado di replicare i database dal nodo master al nodo slave.