Heim >Datenbank >MySQL-Tutorial >Erstellen Sie einen MySQL-Master-Slave-Server unter Linux

Erstellen Sie einen MySQL-Master-Slave-Server unter Linux

王林
王林nach vorne
2020-01-30 20:17:543580Durchsuche

Erstellen Sie einen MySQL-Master-Slave-Server unter Linux

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;

Erstellen Sie einen MySQL-Master-Slave-Server unter Linux

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen