Beim MySQL-Replikationsprozess werden die Daten eines Servers automatisch in Echtzeit auf einen anderen Backup-Server kopiert. Die Datenbankreplikation bietet Fehlertoleranz und Redundanz. Wenn der Master ausfällt, werden Ihre Daten von einem anderen Server wiederhergestellt.
Im Folgenden sind die Schritte zum Konfigurieren der MySQL-Master-Slave-Replikation auf RHEL 7 aufgeführt. Dazu benötigen wir 2 Server mit unterschiedlichen IP-Adressen.
- Laden Sie den MySQL-Server mit dem Yum-Befehl herunter und installieren Sie ihn auf beiden Servern.
# wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
# sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm # sudo yum install mysql-server - Sobald MySQL Server installiert ist, starten und aktivieren Sie ihn für den Start beim Booten.
sudo systemctl enable mysqld
sudo systemctl start mysqld - Finden Sie das temporäre Passwort für den MySQL-Server mit dem folgenden Befehl heraus.
# sudo grep 'temporary password' /var/log/mysqld.log
- Führen Sie den folgenden Befehl aus, um die MySQL-Datenbank zu härten oder zu sichern.
# sudo mysql_secure_installation
- Geben Sie das temporäre Passwort ein, das wir gerade in Schritt (3) erhalten haben, und ändern Sie das Standardpasswort.
- Für beste Sicherheit drücken Sie y für alle Antworten.
Schritt 1 :Masterserver konfigurieren
- Öffnen Sie die MySQL-Konfigurationsdatei mit Ihrem bevorzugten Editor.
# sudo vim /etc/my.cnf
- Fügen Sie die folgende Zeile in den mysqld-Abschnitt ein.
# bind-address = Your Master server IP Address
server-id = 1
log_bin =mysql-bin - Starten Sie den MySQL-Dienst neu.
# sudo systemctl restart mysqld
- Um einen Replikationsbenutzer zu erstellen, melden Sie sich mit root beim MySQL-Server an und geben Sie das Passwort ein.
# sudo mysql -u root -p
- Wir werden den replizierten Benutzer mit dem folgenden Befehl erstellen und dem Benutzer den Slave-Zugriff gewähren. Stellen Sie sicher, dass Sie Ihre Server-IP-Adresse verwenden.
mysql> CREATE USER 'replica'@'173.248.174.102' IDENTIFIED BY '[email protected]';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'173.248.174.102'; - Drücken Sie den folgenden Befehl, um den Namen und die Position der Binärdatei zu erhalten.
mysql> SHOW MASTER STATUS\G
- Wir müssen den Master-Dateinamen mysql-bin.000034 und seine Position 154 notieren.
Schritt 2:Konfigurieren Sie den Slave-Server:
- Öffnen Sie die MySQL-Konfigurationsdatei mit Ihrem bevorzugten Editor.
sudo vim /etc/my.cnf
- Fügen Sie die folgende Zeile in den mysqld-Abschnitt ein.
bind-address = Your Slave server IP Address
server-id = 2
log_bin =mysql-bin - Starten Sie den mysql-Dienst neu.
sudo systemctl restart mysqld
- Lassen Sie uns den Slave-Server so konfigurieren, dass er vom Master-Server repliziert. Melden Sie sich beim MySQL-Server an.
sudo mysql -u root -p
mysql> STOP SLAVE; - Wir werden die folgende Abfrage ausführen, um den Slave-Server so zu konfigurieren, dass er den Master-Server repliziert.
mysql> CHANGE MASTER TO
-> MASTER_HOST='173.248.174.101',
-> MASTER_USER='replica',
-> MASTER_PASSWORD='[email protected]',
-> MASTER_LOG_FILE='mysql-bin.000034',
-> MASTER_LOG_POS=154;
- Starten Sie den Slave-Server.
mysql> START SLAVE;
Schritt 3:Testen Sie die MySQL-Master-Slave-Replikation:
Wir sind mit der Konfiguration von Master- und Slave-Server fertig. Jetzt werden wir die Replikation auf beiden Servern testen.
- Gehen Sie zum Master-Server und drücken Sie den folgenden Befehl.
sudo mysql -u root -p
- Erstellen Sie eine Testdatenbank.
mysql> CREATE DATABASE replica_database;
- Gehen Sie zu Slave Server und melden Sie sich beim MySQL-Datenbankserver an.
sudo mysql -u root -p
- Listen Sie die Datenbank mit dem folgenden Befehl auf.
mysql> SHOW DATABASES;
Wenn die gesamte Konfiguration korrekt ist, sehen Sie dort die im Master erstellte Datenbank. Das ist es. Unsere MySQL-Master/Slave-Replikation funktioniert einwandfrei.