Der Vorteil der Master-Slave-Synchronisierungskonfiguration der MySQL-Datenbank unter Linux besteht darin, dass diese Methode als Sicherungsmethode verwendet werden kann, um eine Lese-/Schreibtrennung zu erreichen und den Druck auf eine Datenbank zu verringern. Um die Geschwindigkeit und Effizienz bei der Verarbeitung großer Datenmengen deutlich zu verbessern, erfordert die Master-Slave-Replikation von MySQL mindestens zwei MySQL-Dienste. Natürlich können MySQL-Dienste auf verschiedene Server verteilt werden, oder es können mehrere Dienste auf einem Server gestartet werden. Dies ist das Prinzip der MySQL Master-Slave-Sicherung. Werfen wir einen Blick auf den spezifischen Synchronisierungskonfigurationsprozess. Schauen wir uns zunächst die Umgebung an, in der ich es getestet habe: CentOS 6.5 MySQL Master-Slave-Synchronisierung, MySQL Version 5.6.25 Hauptserver: centos6.5 IP:192.168.1.101 Vom Server: centos6.5 IP:192.168.1.102 1. Hauptserverbezogene Konfiguration 1. Erstellen Sie ein Synchronisierungskonto und geben Sie die Serveradresse an [root@localhost ~]mysql -uroot -p mysql>mysql verwenden mysql>gewähre Replikations-Slave auf *.* an 'Testbenutzer'@'192.168.1.102', identifiziert durch '12345678'; mysql>Berechtigungen leeren #Berechtigungen aktualisieren Der autorisierte Benutzer testuser kann nur von der Adresse 192.168.1.102 auf die Datenbank des primären Servers 192.168.1.101 zugreifen und hat nur die Berechtigung, die Datenbank zu sichern. 2. Ändern Sie die Konfigurationsdatei /etc/my.cnf vi /etc/my.cnf Fügen Sie unter [mysqld] die folgenden Parameter hinzu. Wenn die Datei bereits existiert, müssen Sie sie nicht hinzufügen. Server-ID = 1 log-bin=mysql-bin #Starten Sie das MySQL-Binärlogsystem, binlog-do-db=ourneeddb #Zu synchronisierende Datenbank binlog-ignore-db=mysql #Synchronisieren Sie die MySQL-Systemdatenbank nicht. Wenn es andere Datenbanken gibt, die Sie nicht synchronisieren möchten, fügen Sie weiterhin [root@localhost ~]/etc/init.d/mysqld hinzu restart #Starten Sie den Dienst neu 3. Überprüfen Sie den Masterstatus des Masterservers (beachten Sie die Elemente „Datei“ und „Position“, der Slaveserver benötigt diese beiden Parameter). mysql> Masterstatus anzeigen; +------------------+----------+--------------+------------------+ | Datei | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000012 | 120 | unsereneeddb| mysql | +------------------+----------+--------------+------------------+ 4. Datenbank exportieren Sperren Sie die Datenbank vor dem Exportieren Tabellen mit Lesesperre leeren; #Datenbank-Schreibschutzbefehl, um das Schreiben von Daten beim Exportieren der Datenbank zu verhindern Tabellen entsperren; #Entsperren Datenbankstruktur und Daten exportieren: mysqldump -uroot -p ourneeddb > /home/ourneeddb.sql Gespeicherte Prozeduren und Funktionen exportieren: mysqldump -uroot -p -ntd -R ourneeddb > ourneeddb_func.sql Tipps: -ntd gespeicherte Prozeduren exportieren, -R Funktionen exportieren 2. Slave-Server-bezogene Konfiguration 1. Ändern Sie die Konfigurationsdatei /etc/my.cnf vi /etc/my.cnf Fügen Sie unter [mysqld] die folgenden Parameter hinzu. Wenn die Datei bereits existiert, müssen Sie sie nicht hinzufügen. server-id=2 #Legen Sie die Slave-Server-ID fest, die sich von der des Master-Servers unterscheiden muss log-bin=mysql-bin #Starten Sie das MySQL-Binärprotokollsystem replicate-do-db=ourneeddb #Der Name der Datenbank, die synchronisiert werden muss replicate-ignore-db=mysql #Die MySQL-Systemdatenbank nicht synchronisieren [root@localhost~ ]/etc/init.d/mysqld restart #Starten Sie den Dienst neu 2. Datenbank importieren Der Importvorgang wird hier nicht beschrieben. 3. Konfigurieren Sie die Master-Slave-Synchronisierung [root@localhost~ ]mysql -uroot -p mysql>mysql verwenden mysql>Slave stoppen; mysql>ändere Master in master_host='192.168.1.101', master_user='Testbenutzer', master_password='12345678', master_log_file='mysql-bin.000012', master_log_pos=120; #log_file und log_pos sind die Datei und Position des Masterservers im Masterstatus mysql>Slave starten; mysql>Slave-Status anzeigen\G; *************************** 1. Reihe *************************** Slave_IO_State: Wartet darauf, dass der Master ein Ereignis sendet Master_Host: 192.168.1.101 Master_User: Testbenutzer Master_Port: 3306 Verbindungswiederholung: 60 Master_Log_File:mysql-bin.000012 Read_Master_Log_Pos: 120 Relay_Log_Datei: orange-2-relay-bin.000003 Relay_Log_Pos: 283 Relay_Master_Log_File: mysql-bin.000012 Slave_IO_Running: Ja Slave_SQL_Running: Ja Replicate_Do_DB: orange Replicate_Ignore_DB: MySQL, Test, Informationsschema, Leistungsschema Tabelle_replizieren: Tabelle_Ignorieren_replizieren: Wild_Do_Tabelle replizieren: Tabelle_Wild_Ignore_replizieren: Last_Errno: 0 Letzter_Fehler: Skip_Counter: 0 Exec_Master_Log_Pos: 120 Relay_Log_Space: 1320 Until_Condition: Keine Bis_Log_Datei: Bis_Log_Pos: 0 Master_SSL_Allowed: Nein Master_SSL_CA_Datei: Master_SSL_CA_Pfad: Master_SSL_Zertifikat: Master_SSL_Chiffre: Master_SSL_Schlüssel: Sekunden_Hinter_Master: 0 Master_SSL_Verify_Server_Cert: Nein Last_IO_Errno: 0 Letzter_E/A-Fehler: Last_SQL_Errno: 0 Letzter_SQL_Fehler: Server-IDs replizieren_ignorieren: Master_Server_Id: 1 Master_UUID: 773d2987-6821-11e6-b9e0-00163f0004f9 Master_Info_Datei: /home/mysql/master.info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Der Slave hat das gesamte Relay-Protokoll gelesen und wartet auf die Aktualisierung durch den Slave-E/A-Thread. Master_Retry_Count: 86400 Master_Bind: Zeitstempel des letzten IO-Fehlers: Letzter_SQL_Fehler_Zeitstempel: Master_SSL_Crl: Master_SSL_Crlpfad: Abgerufenes_Gtid_Set: Ausgeführtes_Gtid_Set: Auto_Position: 0 Beachten Sie, dass „Slave_IO_Running: Yes“ und „Slave_SQL_Running: Yes“ „Yes“ sein müssen und dass „Log_File“ und „Log_Pos“ mit „File“ und „Position“ im Masterstatus identisch sein müssen. Wenn alle korrekt sind, war die Konfiguration erfolgreich! Dies ist der gesamte Inhalt, den wir für Sie zur Konfiguration der synchronen Master-Slave-Replikation von MySQL-Datenbanken unter Linux zusammengestellt haben. Ich hoffe, er kann Ihnen helfen. Das könnte Sie auch interessieren:
|
<<: vue2.x-Konfiguration von vue.config.js zur Projektoptimierung
Inhaltsverzeichnis Nginx-Lastausgleichskonfigurat...
1. Der Unterschied zwischen HTTP und HTTPS HTTP: ...
Vorwort Ich habe bereits einen Artikel über REM-A...
Zugehörige Dokumente Ein Teil dieses Artikels wir...
nginx Übersicht nginx ist ein kostenloser, quello...
Bei der Installation von MySQL sind mir mehrere P...
Verwenden Sie v-model, um das Paging-Informations...
Dieser Artikel veranschaulicht anhand von Beispie...
So erhalten Sie den Container-Startbefehl Der Con...
Konzepteinführung : 1. px (Pixel): Dies ist eine ...
Wir diskutieren hier nicht über PHP-, JSP- oder ....
Vorwort Dieser Artikel verwendet die neuen Funkti...
Bei den tatsächlichen Projekten, an denen ich tei...
Vorwort Einführung Lombok ist ein praktisches Too...
Der Interviewer wird Sie manchmal fragen: „Sagen ...