Gegevensreplicatie is het proces waarbij uw gegevens over meerdere servers worden gekopieerd om de beschikbaarheid van gegevens en de betrouwbaarheid en prestaties van een toepassing te verbeteren. In MySQL replicatie worden gegevens in realtime gekopieerd van een database van de hoofdserver naar andere knooppunten om consistentie van gegevens te garanderen en ook om back-up en redundantie te bieden.
In deze handleiding laten we zien hoe u MySQL . kunt instellen (Master-Slaaf ) replicatie in op RHEL gebaseerde distributies zoals CentOS , Fedora , Rocky Linux, en AlmaLinux .
MySQL-replicatie instellen
Dus hier is onze MySQL replicatie lab setup.
MySQL Master - 10.128.0.14 MySQL Slave - 10.128.15.211
Laten we beginnen...
Stap 1:installeer MySQL op master- en slaveserver
We beginnen met het installeren van de MySQL database op zowel de master en slaaf servers.
$ sudo dnf install @mysql
Zodra de installatie is voltooid, maakt u een punt om de databaseserver te starten.
$ sudo systemctl start mysqld
Schakel het vervolgens in om het systeem te starten of bij opnieuw opstarten.
$ sudo systemctl enable mysqld
Bevestig daarna dat de MySQL database server draait zoals getoond:
$ sudo systemctl status mysqld
Stap 2:Beveilig MySQL op master- en slaveserver
De volgende stap is het beveiligen van de MySQL database op zowel de master en slaaf servers. Dit komt omdat de standaardinstellingen onveilig zijn en enkele mazen bevatten die gemakkelijk door hackers kunnen worden misbruikt.
Dus, om MySQL harder te maken, voer je het volgende commando uit:
$ sudo mysql_secure_installation
Eerst moet u de MySQL . instellen root-wachtwoord. Zorg ervoor dat u een sterk root-wachtwoord opgeeft, bij voorkeur met meer dan 8 tekens, een combinatie van hoofdletters, kleine letters, speciale en numerieke tekens.
Typ voor de overige prompts 'Y'
om de databaseserver aan te passen aan de aanbevolen instellingen.
Zodra u klaar bent met het installeren en uitharden van MySQL op de master- en slave-node, de volgende is om de master-node te configureren.
Stap 3:Configureer de Master Node (Server)
De volgende stap is het configureren van de Master node en geef de slave toegang tot het knooppunt. Eerst moeten we de mysql-server.cnf . bewerken configuratiebestand.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Voeg de volgende regels toe onder de [mysqld]
sectie.
bind-address = 10.128.0.14 server-id = 1 log_bin = mysql-bin
Als u klaar bent, slaat u de wijzigingen op en sluit u af. Start vervolgens de MySQL . opnieuw server.
$ sudo sysemctl restart mysqld
Log vervolgens in op MySQL schelp.
$ sudo mysql -u root -p
Voer de volgende opdrachten uit om een databasegebruiker te maken die zal worden gebruikt om de master en slave te binden voor replicatie.
mysql> CREATE USER 'replica'@'10.128.15.211' IDENTIFIED BY '[email protected]'; mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'10.128.15.211';
Pas de wijzigingen toe en verlaat de MySQL server.
mysql> FLUSH PRIVILEGES; mysql> EXIT;
Controleer de status van de master.
mysql> SHOW MASTER STATUS\G
Let op de bestandsnaam en positie. U hebt dit later nodig bij het instellen van de slave voor replicatie. In ons geval hebben we de bestandsnaam als mysql-bin.000001
en Positie 1232 .
Stap 4:Configureer de Slave Node (Server)
Ga nu terug naar het Slave-knooppunt. Bewerk nogmaals de mysql-server.cnf configuratiebestand.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Plak zoals eerder deze regels onder de [mysqld]
sectie. Wijzig het IP-adres zodat het overeenkomt met het IP-adres van de slave. Wijs ook een andere server-id toe . Hier hebben we het de waarde van 2 . toegekend .
bind-address = 10.128.15.211 server-id = 2 log_bin = mysql-bin
Sla de wijzigingen op en verlaat het bestand. Start vervolgens de databaseserver opnieuw.
$ sudo systemctl restart mysqld
De Slaaf configureren knooppunt om te repliceren vanaf het masterknooppunt, log in op de MySQL-server van de slave.
$ sudo mysql -u root -p
Stop eerst en vooral de replicatiethreads:
mysql> STOP SLAVE;
Voer vervolgens de volgende opdracht uit om de slave-node te configureren om databases van de master te repliceren.
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;POS=1232;POS=1232;POS=1232;POS=1232;POS=1232;POS=1232;POS=1232;
Merk op dat de MASTER_LOG_FILE en MASTER_LOG_POS vlaggen komen overeen met het bestand en Positie waarden van de Master knooppunt aan het einde van stap 1.
De MASTER_HOST , MASTER_USER, en MASTER_PASSWORD corresponderen met respectievelijk het Master IP-adres, de replicatiegebruiker en het wachtwoord van de replicatiegebruiker.
Start vervolgens de slave-replicatiethreads:
mysql> START SLAVE;
Stap 4:MySQL Master-Slave-replicatie testen
Om te testen of replicatie tussen het master- en slave-knooppunt werkt, logt u in op de MySQL-databaseserver op het masterknooppunt:
$ sudo mysql -u root -p
Maak een testdatabase aan. Hier heet onze testdatabase replication_db .
mysql> CREATE DATABASE replication_db;
Verify the existence of the database.
mysql> SHOW DATABASES;
Ga nu naar het slave-knooppunt, log in op de MySQL-server en bevestig dat de replication_db databank aanwezig is. Uit de onderstaande output kunnen we zien dat de database aanwezig is. Dit is een bevestiging dat replicatie heeft plaatsgevonden van de Master naar de slave-node.
mysql> SHOW DATABASES;
En dat is alles, we hebben met succes aangetoond hoe u een MySQL . kunt opzetten master-slave-replicatiemodel dat databases kan repliceren van de master-node naar de slave-node.