How to Configure MySQL Database Replication with Master and Slave on CentOS
Inhoudsopgave:
- voorwaarden
- Installeer MySQL
- Configureer de hoofdserver
- Configureer de slaveserver
- Test de configuratie
- Conclusie
MySQL-replicatie is een proces waarmee u automatisch gegevens van een databaseserver naar een of meer servers kunt kopiëren.
MySQL ondersteunt een aantal replicatietopologieën waarbij Master / Slave-topologie een van de meest bekende topologieën is waarin één databaseserver fungeert als master, terwijl een of meer servers fungeren als slaves. Standaard is de replicatie asynchroon, waarbij de master gebeurtenissen die databasemodificaties beschrijven naar het binaire logboek verzendt en slaves de gebeurtenissen aanvragen wanneer ze gereed zijn.
In deze zelfstudie leggen we uit hoe u een MySQL Master / Slave-replicatie instelt met één master en één slave-server op CentOS 7. Dezelfde stappen zijn van toepassing op MariaDB.
Dit type replicatietopologie is het meest geschikt voor het inzetten van leesreplica's voor leesschaling, live databaseback-up voor noodherstel en voor analysetaken.
voorwaarden
In dit voorbeeld gaan we ervan uit dat u twee servers hebt waarop CentOS 7 wordt uitgevoerd, die via een privénetwerk met elkaar kunnen communiceren. Als uw hostingprovider geen privé-IP-adressen verstrekt, kunt u de openbare IP-adressen gebruiken en uw firewall configureren om verkeer op poort 3306 alleen van vertrouwde bronnen toe te staan.
De servers in dit voorbeeld hebben de volgende IP's:
Master IP: 192.168.121.59 Slave IP: 192.168.121.14
Installeer MySQL
De standaard De CentOS 7-opslagplaatsen bevatten geen MySQL-pakketten, dus installeren we MySQL vanuit hun officiële Yum Repository. Om problemen te voorkomen, zullen we dezelfde MySQL-versie 5.7 op beide servers installeren.
Installeer MySQL op zowel de Master- als Slave-servers:
sudo yum localinstall
sudo yum install mysql-community-server
Nadat de installatie is voltooid, start u de MySQL-service en schakelt u deze in om automatisch op te starten met:
sudo systemctl enable mysqld
sudo systemctl start mysqld
Wanneer de MySQL-server voor het eerst wordt gestart, wordt een tijdelijk wachtwoord gegenereerd voor de MySQL-rootgebruiker. Gebruik het volgende grep-commando om het wachtwoord te vinden:
sudo grep 'temporary password' /var/log/mysqld.log
Voer de opdracht
mysql_secure_installation
uit om uw nieuwe
mysql_secure_installation
te stellen en de beveiliging van het MySQL-exemplaar te verbeteren:
mysql_secure_installation
Voer het tijdelijke root-wachtwoord in en beantwoord
Y
(ja) op alle vragen.
Configureer de hoofdserver
Eerst zullen we de master MySQL-server configureren en de volgende wijzigingen aanbrengen:
- Stel de MySQL-server in om te luisteren op het privé-IP. Stel een unieke server-ID in. Schakel de binaire logboekregistratie in.
Open hiervoor het MySQL-configuratiebestand en voeg de volgende regels toe aan de
sectie:
sudo nano /etc/my.cnf
meester: /etc/my.cnf
bind-address = 192.168.121.59 server-id = 1 log_bin = mysql-bin
Nadat u klaar bent, start u de MySQL-service opnieuw om de wijzigingen door te voeren
sudo systemctl restart mysqld
De volgende stap is het maken van een nieuwe replicatiegebruiker. Log in op de MySQL-server als rootgebruiker:
mysql -uroot -p
Voer vanuit de MySQL-prompt de volgende SQL-query's uit die de
replica
gebruiker maken en het recht
REPLICATION SLAVE
aan de gebruiker verlenen:
CREATE USER 'replica'@'192.168.121.14' IDENTIFIED BY 'strong_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.14';
Zorg ervoor dat u het IP-adres wijzigt met uw slave IP-adres. U kunt de gebruiker een naam geven zoals u dat wilt.
Terwijl u zich nog steeds in de MySQL-prompt bevindt, voert u de volgende opdracht uit die de binaire bestandsnaam en positie afdrukt.
SHOW MASTER STATUS\G
*************************** 1. row *************************** File: mysql-bin.000001 Position: 1427 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)
Let op de bestandsnaam 'mysql-bin.000001' en positie '1427'. U hebt deze waarden nodig bij het configureren van de slaveserver. Deze waarden zullen waarschijnlijk anders zijn op uw server.
Configureer de slaveserver
Zoals voor de hoofdserver hierboven, zullen we de volgende wijzigingen aanbrengen in de slaveserver:
- Stel de MySQL-server in om op de privé-IPS te luisteren Stel een unieke server-ID in Schakel de binaire logboekregistratie in
Open het MySQL-configuratiebestand en bewerk de volgende regels:
sudo nano /etc/my.cnf
slave: /etc/my.cnf
bind-address = 192.168.121.14 server-id = 2 log_bin = mysql-bin
Start de MySQL-service opnieuw:
sudo systemctl restart mysqld
De volgende stap is het configureren van de parameters die de slaveserver zal gebruiken om verbinding te maken met de masterserver. Log in op de MySQL-shell:
mysql -uroot -p
Stop eerst de hulpdraden:
STOP SLAVE;
Voer de volgende query uit waarmee de slave de master repliceert:
CHANGE MASTER TO
MASTER_HOST='192.168.121.59',
MASTER_USER='replica',
MASTER_PASSWORD='strong_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=1427;
Zorg ervoor dat u het juiste IP-adres, gebruikersnaam en wachtwoord gebruikt. De naam en positie van het logboekbestand moeten hetzelfde zijn als de waarden die u van de masterserver hebt verkregen.
Zodra u klaar bent, start u de slave-threads.
Test de configuratie
Op dit punt zou u een werkende Master / Slave-replicatie-instelling moeten hebben.
Om te controleren of alles werkt zoals verwacht, maken we een nieuwe database op de hoofdserver:
mysql -uroot -p
CREATE DATABASE replicatest;
Log in op de slave MySQL-shell:
mysql -uroot -p
Voer de volgende opdracht uit om alle databases weer te geven:
SHOW DATABASES;
U zult merken dat de database die u op de masterserver hebt gemaakt, op de slave wordt gerepliceerd:
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | replicatest | | sys | +--------------------+ 5 rows in set (0.00 sec)
Conclusie
In deze tutorial hebben we laten zien dat u een MySQL Master / Slave-replicatie op CentOS 7 maakt.
Als je nog vragen hebt, kun je een reactie achterlaten.
centos mysql mariadbHoe e-mail handtekening in Windows 8 mail te configureren
Meer informatie over het configureren van e-mailhandtekening in Windows 8 Mail.
Hoe mysql (mariadb) master te configureren
In deze gids laten we u zien hoe u MariaDB Master / Slave-replicatie instelt met één master en één slave-server op Debian 10. MariaDB is de standaardimplementatie van MySQL in Debian.
Hoe mysql master te configureren
MySQL-replicatie is een proces waarmee gegevens van één databaseserver automatisch naar een of meer servers kunnen worden gekopieerd. Deze tutorial behandelt een basisvoorbeeld van MySQL Master / Slave-replicatie met één master en één slave-server op Ubuntu 18.04.







