Heim >Datenbank >MySQL-Tutorial >Implementieren Sie die MySQL-Master-Slave-Replikation

Implementieren Sie die MySQL-Master-Slave-Replikation

coldplay.xixi
coldplay.xixinach vorne
2020-08-29 16:45:302948Durchsuche

Implementieren Sie die MySQL-Master-Slave-Replikation

Verwandte Lernempfehlungen: MySQL-Tutorial

Der Testserver verwendet Centos7.2 für die zugehörige Konfiguration

Der Artikelinhalt bezieht sich auf die zu erreichende Master-Slave-Synchronisation der MySQL-Datenbank Lese-Schreib-Trennung

Übersicht

Damit große Websites eine große Anzahl gleichzeitiger Zugriffe bewältigen können, reicht es bei weitem nicht aus, einen verteilten Lastausgleich auf der Website zu implementieren. Wenn es um die Datengeschäftsschicht und die Datenzugriffsschicht geht, wird die Datenbank unweigerlich zusammenbrechen, wenn die traditionelle Datenstruktur weiterhin verwendet wird oder wenn nur ein Server für die Verarbeitung so vieler Datenbankverbindungsvorgänge verwendet wird, insbesondere wenn die Daten verloren gehen. Die Folgen werden unvorstellbar sein. Zu diesem Zeitpunkt werden wir überlegen, wie Datenbankverbindungen reduziert werden können, und dann zum heutigen Thema übergehen.

Verwenden Sie die Master-Slave-Datenbank, um Lesen und Schreiben zu trennen und so den Druck auf die Master-Datenbank zu teilen. Stellen Sie MySQL auf mehreren Servern bereit, betrachten Sie einen davon als Master-Datenbank und die anderen als Slave-Datenbanken, um eine Master-Slave-Synchronisierung zu erreichen. Die Master-Datenbank ist für aktive Schreibvorgänge verantwortlich, während die Slave-Datenbank nur für aktive Lesevorgänge verantwortlich ist (die Slave-Datenbank führt weiterhin passive Schreibvorgänge aus, um die Datenkonsistenz aufrechtzuerhalten), sodass Datenverluste weitgehend vermieden werden können . Es kann auch Datenbankverbindungen reduzieren und die Belastung der Hauptdatenbank verringern.

MySQL installieren

Ich habe auf die folgenden beiden Artikel verwiesen, um MySQL auf dem Server zu installieren Aufgrund der Remote-Unfähigkeit gibt es einige Fallstricke. Nach der Konfiguration der Datenbank ist zunächst eine Datenbankautorisierung erforderlich, um den Zugriff zu ermöglichen. Öffnen Sie dann die Firewall-Einstellungen, öffnen Sie Port 3306 und erlauben Sie den Zugriff auf die Datenbank über das Datenbankverwaltungstool habe ich die Firewall einfach weiter verwendet, ohne sie einzustellen.

MySQL wurde jeweils auf beiden Testservern installiert und die Testdatenbank wurde gleichzeitig importiert

Master-Slave-Replikationskonfiguration

HauptserverkonfigurationÄndern Sie die MySQL-Konfiguration des Hauptservers in /etc/my.cnf

#在[mysqld]中添加:
server-id=1log_bin=master-bin
log_bin_index=master-bin.index
binlog_do_db=master

#server-id 服务器唯一标识。
#log_bin 启动MySQL二进制日志,即数据同步语句,从数据库会一条一条的执行这些语句。
#binlog_do_db 指定记录二进制日志的数据库,即需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可。
#binlog_ignore_db 指定不记录二进制日志的数据库,即不需要复制的数据库名,如果有多个数据库,重复设置这个选项即可。
#其中需要注意的是,binlog_do_db和binlog_ignore_db为互斥选项,一般只需要一个即可。

Erstellen Sie Benutzer und Berechtigungen

Gewähren Sie Replikationsslave auf

. to masterbackup@'%', identifiziert durch '123456';

% Platzhalter, der angibt, dass jede IP darauf zugreifen kann Konfigurieren Sie den Master-Server bitte für die formale Umgebung. Geben Sie die IP des Slave-Servers an.

Nach Abschluss der Erstellung starten Sie den MySQL-Dienst über den Befehl neu Master Status @Slave Slave Server -Konfiguration anzeigen

Mit der Hauptdatenbank verbinden

#在[mysqld]中添加:
server-id=2relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
#replicate-do-db=master


#server-id 服务器唯一标识,如果有多个从服务器,每个服务器的server-id不能重复,跟IP一样是唯一标识,如果你没设置server-id或者设置为0,则从服务器不会连接到主服务器。
#relay-log 启动MySQL二进制日志,可以用来做数据备份和崩溃恢复,或主服务器挂掉了,将此从服务器作为其他从服务器的主服务器。
#replicate-do-db 指定同步的数据库,如果复制多个数据库,重复设置这个选项即可。若在master端不指定binlog-do-db,则在slave端可用replication-do-db来过滤。
#replicate-ignore-db 不需要同步的数据库,如果有多个数据库,重复设置这个选项即可。
#其中需要注意的是,replicate-do-db和replicate-ignore-db为互斥选项,一般只需要一个即可。

Slave-Synchronisierungsdaten aktivieren
#连接master主服务器
mysql> change master to master_host='103.246.246.225',master_port=3306,master_user='masterbackup',master_password='123456',master_log_file='master-bin.000001',master_log_pos=120;#master_host对应主服务器的IP地址。
#master_port对应主服务器的端口。
#master_log_file对应show master status显示的File列:master-bin.000001。
#master_log_pos对应show master status显示的Position列:120。

Überprüfen Sie die Slave-Informationen

Verwenden Sie den Befehl show Slave StatusG; überprüfen Sie die Slave-Informationen

Implementieren Sie die MySQL-Master-Slave-Replikation

Slave_IO_Running und Slave _SQL_Running sind beide ja , was bedeutet, dass die Synchronisierung erfolgreich war.

Testen

Ein Datenelement in eine beliebige Datentabelle einfügen

Die entsprechende Tabelle aus der Datenbank anzeigen

Sie können sehen, dass die entsprechenden Daten erfolgreich aus der Datenbank synchronisiert wurden ! !

Wenn Sie mehr über das Erlernen des Programmierens erfahren möchten, achten Sie bitte auf die Spalte „PHP-Schulung“!

Das obige ist der detaillierte Inhalt vonImplementieren Sie die MySQL-Master-Slave-Replikation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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