Heim > Datenbank > MySQL-Tutorial > Hauptteil

Was ist die Lese-Schreib-Trennung von MySQL? Wie richte ich die Master-Slave-Datenbank ein?

不言
Freigeben: 2018-10-09 15:22:01
nach vorne
2517 Leute haben es durchsucht

In diesem Artikel erfahren Sie, was die Lese-/Schreibtrennung in MySQL ist. Wie richte ich die Master-Slave-Datenbank ein? Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

Was ist Lese-Schreib-Trennung?

Mysql hat nichts weiter als vier Funktionen: Hinzufügen, Löschen, Ändern und Lesen. Dies trägt zur Verbesserung des Systems bei Leistung.
Versuchen Sie darüber nachzudenken, der Einzug, die Rückgabe, die Änderung und der Verkauf von Waren wurden dahingehend geändert, dass nur noch Waren an der Vordertür verkauft werden, und andere gehen an die Hintertür.
Oft sind Dinge, die hochwertig aussehen, recht einfach zu erstellen

Das Folgende ist für Anfänger geschrieben, es sind alles sehr intuitive Vorgänge.

1. Konfiguration:
Die beiden Server haben die gleiche MySQL-Konfiguration wie MySQL5.7
PS: Wenn die Bedingungen begrenzt sind, können Sie nur zwei MySQL-Dienste installieren (verschiedene Ports wie 3306, 3307), aber das ist etwas im Widerspruch dazu Die ursprüngliche Absicht der Effizienz

2. Code:
1. Im Allgemeinen direkt Auf der Codeebene werden das Lesen und Schreiben von MySQL-Operationsklassen wie Update, Insert und Select * from weitergeleitet und entsprechend getrennt an verschiedene Server.
2. Middleware-Agent, das heißt, ohne Änderung des Codes werden Lese- und Schreibanforderungen an den Master-Slave-Server gesendet.

Lassen Sie uns nun darüber sprechen, wie der konfiguriert wird Master-Slave-Server:

1. Offene Ports: Die meisten Hosts verwenden standardmäßig den MySQL-Port 3306, also konfigurieren Sie zuerst die beiden Maschinen. Öffnen Sie Port 3306 in der Sicherheitsgruppe oder Firewall und starten Sie ihn neu.
ist geöffnet, konfigurieren Sie nun zwei Server (dasselbe gilt für einen Host und zwei MySQL-Server):

Das Folgende verwendet die Haupt-IP: 192.168.0.1, Slave-IP: 192.168.0.2, Synchronisierungskontospezifikation erstellen, Passwort spec_password als Beispiel:

Hauptserver (Hinzufügen, Löschen und Ändern):

#1.Mysql配置改以下并重启服务(命令行里直接重启:service mysql restart)
[mysqld]
server-id=1
log-bin=master-bin
log-bin-index=master-bin.index

#2.命令行mysql执行或phpmyadmin里执行:
GRANT REPLICATION SLAVE ON *.* TO 'spec'@'192.168.0.2' IDENTIFIED BY 'spec_password';
flush privileges;
Nach dem Login kopieren

Auf diese Weise ist der Hauptserver fertiggestellt.

Konfiguration vom Server:

#1.Mysql配置改以下并重启服务(命令行里直接重启:service mysql restart)
[mysqld]
server-id=2
relay-log-index=slave-bin.index
relay-log=slave-bin

#2.命令行mysql执行或phpmyadmin里执行:
change master to master_host='192.168.0.1',master_port=3306,master_user='spec',master_password='spec_password',master_log_file='master-bin.000001',master_log_pos=0;
start slave
Nach dem Login kopieren

Generell ist die Konfiguration hier abgeschlossen.

3. Test:

Abfrageanweisung vom Server: Slave-Status anzeigen
Wenn Slave_IO_State=Warten auf Master Um das Ereignis zu senden, ist es erfolgreich.
Der Rest des Status hat normalerweise folgende Gründe:

1 Die Master-Slave-Sicherheitsgruppe oder Firewall öffnet Port 3306 nicht
2. Ping-Fehler zwischen Master und Slave.
3. Das oben angegebene Kontopasswort ist falsch

Von nun an werden alle Hinzufügungen, Löschungen oder Änderungen auf dem Master-Server mit dem Slave-Server synchronisiert.

4. Vorschläge:

1. Denken Sie daran, dass der Slave-Server nur Lesevorgänge durchführt, keine Hinzufügungen, Löschungen oder Änderungen. Behalten Sie die Datensynchronisierung bei, sodass bei einem Ausfall ein anderer Server übernehmen kann Tatsächlich gehen einige der neuesten Daten des Master-Servers definitiv verloren, wenn er ausfällt.
2. Die Bandbreite des Slave-Servers muss >= der des Master-Servers sein, um die Synchronisationsverzögerung zu minimieren. Wenn es sich um eine kleine Wasserleitung handelt, wird die Synchronisation natürlich einen Schritt langsamer sein.

Das obige ist der detaillierte Inhalt vonWas ist die Lese-Schreib-Trennung von MySQL? Wie richte ich die Master-Slave-Datenbank ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!