MySQL Master-Slave-ReplikationIch habe ursprünglich am Sharding gearbeitet, aber nachdem ich damit fertig war, stellte ich fest, dass die Master-Slave-Replikation der Datenbank nicht durchgeführt worden war. Daher habe ich nach der Konfiguration einige Aufzeichnungen gemacht: MySQL Master-Slave-ReplikationsmethodeEs gibt zwei Möglichkeiten der MySQL-Master-Slave-Replikation: protokollbasiert (binlog) und GTID-basiert (Global Transaction Identifier). Dieser Blogbeitrag verwendet die protokollbasierte (binlog) Replikation. Das Prinzip der MySQL-Master-Slave-Replikation 1. Der Master zeichnet Daten im Binärprotokoll auf. Dies ist die Datei, die in der MySQL-Konfigurationsdatei my.cnf durch log-bin angegeben wird. Diese Aufzeichnungen werden als Binärprotokollereignisse bezeichnet. Spezifische Implementierung der MySQL-Master-Slave-Konfiguration 1. Master-Konfiguration (1) Ändern Sie die my.cnf-Konfigurationsdatei von MySQL. Das Schwierige dabei ist, dass die von mir verwendete MySQL-Version keine my.cnf-Konfigurationsdatei hat, nicht einmal eine my-default.cnf. Im Allgemeinen befindet sich my.cnf im Verzeichnis /etc und my-default.cnf in /usr/local/mysql/support-files. Schließlich habe ich eine my.cnf-Datei aus dem Internet kopiert und in /etc abgelegt (Freunde können sie selbst online finden, es gibt viele davon). bash-3.2# vim /etc/my.cnf # Server-ID festlegen, die nicht wiederholt werden kann. Im Allgemeinen kann sie auf die IP-Adresse der Hauptdatenbank festgelegt werden. server_id=81 # Backup-Filter: Datenbank, die gesichert werden muss, Ausgabe Binlog binlog-do-db=demo_ds_master # Backup-Filter: Datenbanken, die nicht gesichert werden müssen, werden nicht ausgegeben binlog-ignore-db=mysql # Binäres Logging aktivieren und die Daten der Master-Datenbank in einer Logdatei aufzeichnen, die mit mysql-bin beginnt (anpassbar) log-bin=mysql-bin # Konfigurieren Sie den Speicher jeder Sitzung, der zum Speichern des Binärprotokollcaches während des Transaktionsprozesses verwendet wird. binlog_cache_size=1M # Master-Slave-Replikationsformat (gemischt, Anweisung, Zeile, die Standardeinstellung ist Anweisung) binlog_format=gemischt # Die Anzahl der Tage, nach denen Binärprotokolle automatisch gelöscht werden/ablaufen. Der Standardwert ist 0, was bedeutet, dass keine automatische Löschung erfolgt. expire_logs_days=7 # Wird verwendet, um alle Fehler oder angegebenen Fehlertypen zu überspringen, die bei der Master-Slave-Replikation aufgetreten sind, um ein Slave-Terminal zu vermeiden. # 1062: Primärschlüsselkonflikt (spezifische Parameter sind online verfügbar) Slave_Überspringen_Fehler=1062 (3) Starten/Neustarten des Master-Datenbankdienstes, Anmelden bei der Datenbank, Anlegen eines Datensynchronisationsbenutzers und Autorisieren #Autorisieren Sie diese Maschine, um die Daten der Hauptdatenbank mysql zu sichern> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'root'@'192.168.31.60' identifiziert durch 'Passwort'; #Aktualisieren Sie dann die Berechtigungen mysql> flush privileges; #Informationen zur konfigurierten Masterdatenbank anzeigen mysql> show master status; (4) Datensicherung der Master-Datenbank, um Datenkonsistenz zwischen Master- und Slave-Datenbanken sicherzustellen # Tabelle vorübergehend sperren und Nur-Lese-Berechtigung festlegen mysql> Tabellen mit Lesesperre leeren; # Sichern Sie die Datenbankbash-3.2# mysqldump -uroot -p --add-drop-table demo_ds_master_1 > /tmp/demo_ds_master_1.sql; # Entsperren Sie die Tabellemysql> unlock table; 2. Slave-Konfiguration(1) Ändern Sie die my.cnf-Konfigurationsdatei der Slave-Datenbank mysql und fügen Sie die Relay-Protokollkonfiguration der Slave-Datenbank hinzu [root@entwickeln usw.]# vim my.cnf # Server-ID festlegen, die nicht wiederholt werden kann. Hier wird die IP-Adresse der Slave-Datenbank festgelegt. Server-ID = 60 # Aktivieren Sie das Relay-Protokoll aus der Datenbank, schreiben Sie das Binärprotokoll der Masterdatenbank in das Relay-Protokoll und das Relay-Protokoll beginnt mit hehe-mysql-relay-bin (anpassbar). relay_log=hehe-mysql-relay-bin # Setzen Sie die Slave-Datenbank auf schreibgeschützte Berechtigung, um Inkonsistenzen zwischen Master- und Slave-Daten zu vermeiden read_only=1 (2) Wenn die Slave-Datenbank als Master-Datenbank einer anderen Datenbank dienen muss, müssen Sie die Konfigurationsinformationen auf dem Master hinzufügen und log_slave_updates=1 hinzufügen, um das Binlog des Masters in Ihrem eigenen Binlog aufzuzeichnen. (3) Starten Sie die Slave-Datenbank neu und synchronisieren Sie die Daten der Master-Datenbank # Führen Sie die Sicherungsdatenbank der Masterdatenbank aus [root@develop etc]# mysql -uroot -p demo_ds_master_1 < /tmp/demo_ds_master_1.sql # Melden Sie sich bei der Slave-Datenbank an [root@develop etc]# mysql -uroot -p # Setzen Sie den Masterknoten des Slave-Knotens mysql> ändern Sie den Master in master_host='192.168.31.80', master_user='root',master_password='password', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=154; # Master-Slave-Synchronisierung aktivieren mysql> start slave; # Überprüfen Sie den Master-Slave-Synchronisierungsstatusmysql> show slave status\G; # Den Status der Master- und Slave-Threads anzeigen mysql> show processlist\G; Das folgende Bild zeigt, dass die Master-Slave-Replikation konfiguriert wurde. Durch das Einfügen von Daten in die Master-Datenbank kann nun die automatische Replikation der Master-Datenbankdaten durch die Slave-Datenbank realisiert werden.
Dies ist das Ende dieses Artikels über die Implementierungsschritte der MySQL-Master-Slave-Replikation. Weitere relevante Inhalte zur MySQL-Master-Slave-Replikation finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
>>: Tabelle zeigt den Grenzcode, den Sie anzeigen möchten
Hallo zusammen, ich bin Liang Xu. Bei der Verwend...
Hintergrund Apropos MySQL-Deadlock: Ich habe bere...
Wenn die Tabelle Zehntausende Datensätze enthält,...
Dieser Artikel beschreibt anhand von Beispielen d...
FastDFS- und Nginx-Integration: Der Tracker wird ...
Nginx-Server nginx ist ein ausgezeichneter Webser...
Ursprung: Vor einigen Tagen hat ein Tester eine A...
1. Schrifteigenschaften Farbe, gibt die Farbe des...
Inhaltsverzeichnis Vorwort: 1. Einführung in Navi...
Inhaltsverzeichnis 1. Grundlegende Verwendung 2. ...
Was ist hohe Parallelität? Die standardmäßigen Li...
Statistik der QPS-Werte der letzten N Sekunden (i...
Inhaltsverzeichnis Betriebswirtschaftlicher Hinte...
Der Standardbetriebsmodus von MySQL ist der Autoc...
Der MySQL-Volltextindex ist ein spezieller Index,...