Replicarea datelor este procesul de copiere a datelor dvs. pe mai multe servere pentru a îmbunătăți disponibilitatea datelor și a îmbunătăți fiabilitatea și performanța unei aplicații. În MySQL replicare, datele sunt copiate dintr-o bază de date de pe serverul principal la alte noduri în timp real pentru a asigura consistența datelor și, de asemenea, pentru a oferi backup și redundanță.
În acest ghid, vă demonstrăm cum puteți configura MySQL (Stăpân-Sclav) replicare în Distribuții bazate pe RHEL precum CentOS, Fedora, Rocky Linux, și AlmaLinux.
Deci, aici este al nostru MySQL configurarea laboratorului de replicare.
MySQL Master - 10.128.0.14. Slave MySQL - 10.128.15.211.
Să începem…
Vom începe prin a instala MySQL baza de date pe ambele maestru și sclav servere.
$ sudo dnf install @mysql.
Odată ce instalarea este completă, faceți un punct pentru a porni serverul de baze de date.
$ sudo systemctl start mysqld.
Apoi activați-l pentru a începe la pornirea sistemului sau la repornire.
$ sudo systemctl enable mysqld.
După aceea, confirmați că MySQL serverul de baze de date rulează așa cum se arată:
$ sudo systemctl status mysqld.
Următorul pas este asigurarea MySQL baza de date pe ambele maestru și sclav servere. Acest lucru se datorează faptului că setările implicite sunt nesigure și prezintă unele lacune care pot fi exploatate cu ușurință de către hackeri.
Deci, pentru a întări MySQL, rulați comanda:
$ sudo mysql_secure_installation.
În primul rând, vi se va cere să setați MySQL parola root. Asigurați-vă că furnizați o parolă de root puternică, de preferință cu mai mult de 8 caractere, care sunt o combinație de caractere majuscule, minuscule, speciale și numerice.
Pentru solicitările rămase, tastați „Y”
pentru a ajusta serverul bazei de date la setările recomandate.
Odată ce ați terminat instalarea și întărirea MySQL pe nodul master și slave, următorul este configurarea nodului master.
Următorul pas este configurarea Maestru nod și acordați sclav accesul nodului la acesta. În primul rând, trebuie să edităm mysql-server.cnf Fișier de configurare.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf.
Adăugați următoarele rânduri sub [mysqld]
secțiune.
bind-address = 10.128.0.14. server-id = 1. log_bin = mysql-bin.
După ce ați terminat, salvați modificările și ieșiți. Apoi reporniți MySQL Server.
$ sudo sysemctl reporniți mysqld.
Apoi, conectați-vă MySQL coajă.
$ sudo mysql -u root -p.
Executați următoarele comenzi pentru a crea un utilizator al bazei de date care va fi folosit pentru a lega master și slave pentru replicare.
mysql> CREATE USER 'replica'@'10.128.15.211' IDENTIFIED BY '[email protected]'; mysql> Acordați SLAVE REPLICAȚIE PE *.*LA „replica”@'10.128.15.211';
Aplicați modificările și părăsiți MySQL Server.
mysql> PRIVILEGII FLUSH; mysql> EXIT;
Verificați starea masterului.
mysql> AFIȚĂ STARE MASTER\G.
Luați notă de numele și poziția fișierului. Veți avea nevoie de acest lucru mai târziu când configurați slave pentru replicare. În cazul nostru, avem numele fișierului ca mysql-bin.000001
și Poziție 1232.
Acum, întoarceți-vă la nodul Slave. Încă o dată, editați mysql-server.cnf Fișier de configurare.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf.
Ca și înainte, lipiți aceste rânduri sub [mysqld]
secțiune. Schimbați adresa IP pentru a corespunde cu IP-ul sclavului. De asemenea, atribuiți un alt server-id. Aici i-am atribuit valoarea de 2.
bind-address = 10.128.15.211. server-id = 2. log_bin = mysql-bin.
Salvați modificările și părăsiți fișierul. Apoi reporniți serverul bazei de date.
$ sudo systemctl reporniți mysqld.
Pentru a configura Sclav nodul de replicat de la nodul Master, conectați-vă la serverul MySQL al Slave.
$ sudo mysql -u root -p.
În primul rând, opriți firele de replicare:
mysql> STOP SLAVE;
Apoi executați următoarea comandă pentru a configura nodul slave pentru a replica bazele de date de la master.
mysql> CHANGE MASTER TO MASTER_HOST='10.128.0.14', MASTER_USER='replica', MASTER_PASSWORD='[email protected]', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1232;
Rețineți că MASTER_LOG_FILE și MASTER_LOG_POS steaguri corespund fișierului și Poziţie valorile din Maestru nod la sfârșitul pasului 1.
The MASTER_HOST, MASTER_USER, și PAROLA PRINCIPALA corespund adresei IP master, utilizatorului de replicare și, respectiv, parolei utilizatorului de replicare.
Apoi porniți firele de replicare slave:
mysql> START SLAVE;
Acum, pentru a testa dacă replicarea între nodul master și nodul slave funcționează, conectați-vă la serverul de baze de date MySQL de pe nodul master:
$ sudo mysql -u root -p.
Creați o bază de date de testare. Aici se numește baza noastră de date de teste replication_db.
mysql> CREATE DATABASE replication_db;
Verificați existența bazei de date.
mysql> AFIȘAȚI BAZELE DE DATE;
Acum, mergeți la nodul slave, conectați-vă la serverul MySQL și confirmați că replication_db baza de date este prezentă. Din rezultatul de mai jos, putem vedea că baza de date este prezentă. Aceasta este confirmarea faptului că replicarea a avut loc de la nodul Master la nodul slave.
mysql> AFIȘAȚI BAZELE DE DATE;
Și asta este tot, am demonstrat cu succes cum puteți configura un MySQL model de replicare master-slave care poate replica baze de date de la nodul master la nodul slave.