Um das Ziel zu erreichen
Jetzt müssen Sie zwei MySQL-Server erstellen (einen Master und einen Slave), einen als Master-Server und einen Einer fungiert als Slave-Server, der Master-Server führt Schreibvorgänge aus und der Slave-Server führt Lesevorgänge aus.
Workflow
Masterserver:
Binärprotokolle aktivieren
Eindeutige Server-ID konfigurieren
Erhalten Sie die Name und Speicherort der Master-Binärprotokolldatei
Erstellen Sie ein Benutzerkonto für die Slave- und Master-Kommunikation.
Slave-Server:
Konfigurieren Sie eine eindeutige Server-ID
Verwenden Sie das vom Master zugewiesene Benutzerkonto, um das Master-Binärprotokoll zu lesen
Aktivieren Sie den Slave Service.
(Empfehlung für kostenlose Lernvideo-Tutorials: MySQL-Video-Tutorial)
Vorbereitungsarbeiten
Master-Slave-Datenbank Version Am besten gleich bleiben
Die Daten in der Master- und Slave-Datenbank sollten konsistent sein
Master-Datenbank: 192.168.244.201: 3306
Slave-Datenbank: 192.168. 244.202: 3306
Konfiguration starten
Master-Hauptserver konfigurieren
Suchen Sie die Konfigurationsdatei my.cnf des Masters Datenbank (my.ini in Windows), meine In /etc/my.cnf
Fügen Sie die folgenden zwei Zeilen in den Abschnitt [mysqld] ein:
[mysqld] log-bin=mysql-bin #开启二进制日志 server-id=201 #设置server-id,唯一值,标识主机
Starten Sie den MySQL-Dienst neu
systemctl restart mysqld
Für das Hauptkonto erstellen. Geben Sie MySQL aus dem synchronisierten Konto/Passwort ein:
: mysql -u root -p und drücken Sie die Eingabetaste, um das Passwort einzugeben.
Der von mir erstellte Benutzername ist „master_root“ und das Passwort ist „MySql@6688“
[Hinweis: Da das Passwort geändert wurde, um das einfache Passwort 123456 zu unterstützen, ein neues Hier wurde eines erstellt. Der Benutzer hatte einige Probleme und sagte, das Passwort entspreche nicht der Richtlinie usw. Später habe ich MySQL einfach neu installiert und das standardmäßige komplexe Passwort verwendet, und es gab keine Probleme mehr. Eigentlich ist es gut, sich daran zu gewöhnen. 】
Ich verwende unten %. Ich schreibe nicht die spezifische IP. Sie können selbst entscheiden.
#创建用户(IP为可访问该master的IP,任意IP就写'%') mysql> CREATE USER 'master_root'@'192.168.244.202' IDENTIFIED BY 'MySql@6688'; #分配权限(IP为可访问该 master的IP,任意IP就写'%') mysql> GRANT REPLICATION SLAVE ON *.* TO 'master_root'@'192.168.244.202'; #刷新权限 mysql>flush privileges;
Überprüfen Sie den Master-Status und notieren Sie den Namen der Binärdatei (mysql-bin.000001) und den Speicherort (154). Diese werden später bei der Konfiguration der Slave-Bibliothek verwendet.
show master status;
Konfigurieren Sie den Slave-Master-Server
Ändern Sie die Datei my.cnf
vim /etc/my.cnf
[mysqld] server-id=202 #设置server-id,唯一值,唯一标识从库
Starten Sie den MySQL-Dienst neu
systemctl restart mysqld
Melden Sie sich bei MySQL an und führen Sie die Synchronisierungs-SQL-Anweisung aus (Name des Master-Servers, Benutzername für Master und Slave, Passwort, Name der Binärdatei, Standort)
mysql> CHANGE MASTER TO -> MASTER_HOST='192.168.244.201', -> MASTER_USER='master_root', -> MASTER_PASSWORD='MySql@6688', -> MASTER_LOG_FILE='mysql-bin.000001', -> MASTER_LOG_POS=154;
Starten Sie den Slave-Synchronisierungsprozess
mysql>start slave;
Überprüfen Sie den Slave-Status
show slave status\G
Seien Sie vorsichtig folgen Sie dem Semikolon, andernfalls der letzten Zeile. Der gemeldete Fehler lautet wie folgt:
ERROR: No query specified
Wenn sowohl Slave_IO_Running als auch Slave_SQL_Running JA sind, bedeutet dies, dass die Master-Slave-Synchronisierungseinstellung erfolgreich ist.
Als Nächstes können Sie eine Überprüfung durchführen. Fügen Sie beispielsweise ein Datenelement in eine Tabelle in der Testdatenbank der Master-Datenbank ein und prüfen Sie, ob im Slave-Test neue Daten in derselben Datentabelle vorhanden sind Um zu überprüfen, ob die Master-Slave-Replikationsfunktion gültig ist, können Sie auch den Slave schließen (mysql>slave stoppen;) und dann den Master ändern, um zu sehen, ob der Slave entsprechend geändert wurde (nach dem Stoppen des Slaves). (Änderungen des Masters werden nicht mit dem Slave synchronisiert) und der Master-Slave-Vorgang kann überprüft werden.
Andere verwandte Parameter:
Nachdem der Master das Binärprotokoll aktiviert hat, zeichnet es standardmäßig nur die Vorgänge aller Tabellen in allen Bibliotheken auf Zeichnen Sie die angegebene Datenbank oder sogar die angegebene Tabelle durch Konfiguration auf. Für bestimmte Vorgänge können Sie die folgenden Optionen in [mysqld] der MySQL-Konfigurationsdatei hinzufügen und ändern:
Welche Datenbanken sind nicht synchronisiert?
binlog-ignore-db = mysql binlog-ignore-db = test binlog-ignore-db = information_schema
Welche Datenbanken werden nur synchronisiert, außer Darüber hinaus andere nicht synchronisierte
binlog-do-db = game
Wenn Sie beispielsweise zuvor den Master-Status überprüft haben, haben Sie Sie können sehen, dass nur die Testbibliothek aufgezeichnet wird und die manuellen und MySQL-Bibliotheken ignoriert werden.
Empfohlene verwandte Artikel und Tutorials: MySQL-Tutorial
Das obige ist der detaillierte Inhalt vonErstellen Sie einen MySQL-Master-Slave-Server unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!