Konfigurationsschema für die MySQL-Master-Slave-Synchronisierung unter dem Centos7-System

Konfigurationsschema für die MySQL-Master-Slave-Synchronisierung unter dem Centos7-System

Vorwort

Bei der Arbeit an einem Hochverfügbarkeitsprojekt ist heutzutage eine Datensynchronisierung erforderlich. Da nur zwei Knoten vorhanden sind und bei der Master-Master-Synchronisierung die Gefahr einer zirkulären Synchronisierung besteht, ziehen wir die Verwendung der MySQL-Master-Slave-Synchronisierung in Erwägung.

Wenn Sie noch nie mit MySQL-Datensynchronisierung zu tun hatten, denken Sie vielleicht, dass die Datensynchronisierung schwierig ist. Wenn Sie jedoch die folgenden Schritte ausführen, werden Sie feststellen, dass die Synchronisierung ganz einfach ist. Schließlich müssen wir nur wissen, wie wir Probleme konfigurieren und beheben, und die zugrunde liegende spezifische Implementierung des MySQL-Teams hat bereits dazu beigetragen, dies zu erreichen.

Kommen wir ohne weitere Umschweife direkt zur Sache:

(1) Stellen Sie zunächst sicher, dass zwei Geräte vorhanden sind (Master und Slave) und installieren Sie die MySQL-Datenbank auf jedem Gerät. Nachdem die Installation abgeschlossen ist,

Verwenden Sie mysql -u [Datenbankbenutzername] -p [Benutzerkennwort]. Wenn Sie sich bei MySQL anmelden können, war die Installation erfolgreich.

(2) Bearbeiten Sie die MySQL-Konfigurationsdatei. Der Pfad lautet im Allgemeinen /etc/mysql/mysql.conf.d/mysqld.cnf (das vom Benutzer bei der Installation von MySQL angegebene Verzeichnis).

Wie: /etc/my.conf usw.). Fügen Sie nach Bedarf den folgenden Inhalt unter dem Modul [mysqld] im Master- und Slave-MySQL hinzu:

  [mysqld]

  Standard-Speicher-Engine = InnoDB

  innodb_file_per_table=1

  Kollationsserver = uft8_general_ci

  init-connect='Namen festlegen uft8'

  Bindeadresse = 0.0.0.0

  log_bin=mysql-bin

  relay_log=mysql-relay-bin

  Ablauf_Protokolltage=100

  überspringen-Slave-Start = 1

  binlog_do_db=[Name der zu synchronisierenden Datenbank]

  binlog-ignore-db=mysql,sys,informationsschema,leistungsschema

  Server-ID=[1 für Master, 2 für Slave]

  automatische Inkrementierung-Inkrement = 2

  automatischer Inkrement-Offset = 1

  Open_files_limit=65535

  mac_connections=1000

  Slave-Überspringfehler = alle

(3) Stellen Sie über die Shell eine Verbindung zum Master- und Slave-Server her: mysql -u [Datenbankbenutzername] -p [Benutzerkennwort], melden Sie sich jeweils beim Master- und Slave-Knoten mysql an, erstellen Sie einen Synchronisierungsbenutzer repl und führen Sie den folgenden Befehl aus:

  Gewähren Sie alle Berechtigungen für *.* an „repl“@„%“, identifiziert durch „repl“, mit der Gewährungsoption.

Beenden Sie dann die MySQL-Operationsseite und starten Sie den MySQL-Dienst neu. Der Befehl lautet wie folgt:

  systemctl startet mysql.service neu

Rufen Sie dann den Hauptknoten Mysql auf und zeigen Sie die Spalten „Datei“ und „Position“ von Mysql an. Führen Sie den Befehl aus: show master status; das Ergebnis ist wie folgt

(4) Melden Sie sich beim Slave-Server an, geben Sie MySQL mit mysql -u [Datenbankbenutzername] -p [Benutzerkennwort] ein und führen Sie Folgendes aus:

  Sklave stoppen;

  Slave zurücksetzen;

  ändern Sie „master“ in „master_host='[Masterknoten-IP]', „master_user='repl', „master_password='repl', „master_log_file='[mysql-bin.000001, siehe Spalte „Datei“ in (3)]', „master_log_pos=[245, siehe Spalte „Position“ in (3)];

  Ausfahrt;

Führen Sie systemctl restart mysql.service aus, um den MySQL-Dienst neu zu starten.

(5) Starten Sie die Slave-Bibliothek des Slave-Servers, geben Sie mysql -u [Datenbankbenutzername] -p [Benutzerkennwort] ein, um den Slave-Knoten Mysql aufzurufen, und führen Sie den folgenden Befehl aus:

  Slave starten;

Ausführen: show slave status\G; um den Status des Sicherungsdienstes anzuzeigen. Wenn die folgenden beiden Zustände „Ja“ lauten, bedeutet dies, dass die Master-Slave-Synchronisierung erfolgreich war.

Als Nächstes können Sie versuchen, ein Datenelement in die Hauptdatenbank einzufügen, um zu sehen, ob die Daten automatisch zur Slave-Datenbank hinzugefügt werden können. Ist das nicht ein bisschen aufregend? Lass es uns jetzt testen.

PS: Was ist, wenn ein Synchronisierungsproblem besteht?

(1) Überprüfen Sie, ob die Attribute Master_Log_File und Read_Master_Log_Pos in der obigen Abbildung mit den Abfrageergebnissen des Masterknotens übereinstimmen.

(2) Bei der Verbindung von der Datenbank zur Hauptdatenbank ist möglicherweise eine Zeitüberschreitung aufgetreten. Erhöhen Sie die Verbindungsverzögerung.

(3) Wenn das oben genannte Problem nicht gelöst werden kann, überprüfen Sie bitte das MySQL-Protokoll, um die Ursache zu finden.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • MySQL Master-Slave-Synchronisation, Implementierungsprinzip des Transaktions-Rollbacks
  • Detaillierte Erläuterung des tatsächlichen Prozesses der Master-Slave-Synchronisierung der MySQL-Datenbank
  • Detaillierte Erklärung des Server-ID-Beispiels bei der MySQL-Master-Slave-Synchronisierung
  • Ursachen und Lösungen für Verzögerungen bei der MySQL-Master-Slave-Synchronisierung
  • MySQL Master-Slave-Synchronisationsmechanismus und Tracking-Prozess für Synchronisationsverzögerungsprobleme
  • Master-Slave-Synchronisationskonfiguration und Lese-/Schreibtrennung der MySQL-Datenbank
  • Mysql Master-Slave-Synchronisation Last_IO_Errno:1236 Fehlerlösung
  • Das Implementierungsprinzip der MySQL-Master-Slave-Synchronisation
  • Detaillierte Erläuterung der Konfigurationspraxis für die MySQL-Master-Slave-Synchronisierung
  • Detaillierte Erläuterung der MySQL-Master-Slave-Synchronisierung unter Windows
  • Detaillierte Erklärung zum Einrichten der Master-Slave-Synchronisierung in der MySQL-Datenbank
  • Master-Slave-Synchronisationskonfiguration der Mysql-Datenbank

<<:  jQuery kombiniert mit CSS, um die Funktion „Zurück zum Anfang“ zu erreichen

>>:  CentOS7-Netzwerkkonfiguration unter virtueller VMware-Maschine (Host für drahtlosen Internetzugang)

Artikel empfehlen

So erstellen Sie mit Harbor ein privates Docker-Repository

Inhaltsverzeichnis 1. Open-Source-Lagerverwaltung...

So erhalten Sie die dynamische Anzahl der verbleibenden Wörter im Textbereich

Ich bin bei der Arbeit auf einen Fall gestoßen, ü...

Detaillierte Analyse klassischer Fragen zu JavaScript-Rekursionsfällen

Inhaltsverzeichnis Was ist Rekursion und wie funk...

Websocket+Vuex implementiert eine Echtzeit-Chat-Software

Inhaltsverzeichnis Vorwort 1. Der Effekt ist wie ...

So ändern Sie den MySQL-Zeichensatz utf8 in utf8mb4

Wenn für MySQL 5.5 der Zeichensatz nicht festgele...

Shell-Skripteinstellungen zum Verhindern von Brute-Force-SSH

Das Shell-Skript richtet die Zugriffskontrolle ei...

Tutorial zum Importieren und Exportieren von Docker-Containern

Hintergrund Die Popularität von Docker hängt eng ...

Detaillierte Erklärung von MySQL Explain

Bei unserer täglichen Arbeit führen wir manchmal ...

Probleme und Lösungen bei der Verwendung der jsx-Syntax in React-vscode

Problembeschreibung Nach der Installation des Plu...

Einführung in die Verwendung gängiger XHTML-Tags

Es gibt viele Tags in XHTML, aber nur wenige werd...

Detaillierte Erläuterung des Datenreaktionsprinzips von Vue

Dieser Artikel richtet sich hauptsächlich an diej...