


Detaillierte Erläuterung des Beispielcode-Sharings der Master-Slave-Replikation von MySQL5.6 unter Centos7
In diesem Artikel wird hauptsächlich die detaillierte Erklärung der Master-Slave-Replikation von MySQL5.6 unter Centos7 vorgestellt. Der Herausgeber findet es ziemlich gut, daher werde ich es jetzt mit Ihnen teilen und als Referenz geben. Folgen wir dem Editor und werfen wir einen Blick darauf.
1. Einführung in die MySQL-Master-Slave-Replikation
Die Master-Slave-Replikation von MySQL ist nicht aktiviert Die Datenbankfestplatte Die Datei wird direkt kopiert, aber zur Synchronisierung über das logische Binlog-Protokoll auf den lokalen Server kopiert. Anschließend liest der lokale Thread die SQL-Anweisung im Protokoll und wendet sie erneut auf die MySQL-Datenbank .
MySQL-Datenbank unterstützt die Replikation in verschiedenen Geschäftsszenarien wie unidirektional, bidirektional, Kettenkaskade und Ring. Ein Server fungiert als Hauptserver-Master und empfängt Aktualisierungen von Benutzern, während ein oder mehrere andere Server fungieren als Der Slave-Server empfängt den Protokollinhalt aus der Binlog-Datei des Master-Servers, analysiert die SQL und aktualisiert sie auf dem Slave-Server. Ein Master und ein Slave (A -> B, A ist der Master, B ist der Slave)Ein Master und mehrere Slaves (A -> B, A -> C, A ist der Slave-Master, B und C sind Slaves)Bidirektionale Dual-Master-Synchronisation (A -> B, B -> A, A und B sind beide Master und sichern sich gegenseitig)Lineare Kaskade (A -> B -> C, A und B sind Master und Slaves und C ist Slave)Ringkaskade (A -> B -> C -> ;A, A, B und C sind beide Master und jeder Knoten kann Daten schreiben)2. Die Lösung zur Realisierung der Trennung von MySQL-Master-Slave-Lesen und -Schreiben
1. Erzielen Sie eine Lese- und Schreibtrennung durch Programme (Urteilsaussage Schlüsselwort zur Verbindung der Master-Slave-Datenbank)
2. Erzielen Sie eine Lese- und Schreibtrennung durch Offenheit Quellsoftware (MySQL-Proxy, Amoeba, Stable Die Leistung und Funktionen sind durchschnittlich, nicht für den Produktionseinsatz empfohlen)3. Unabhängige Entwicklung von DAL-Layer-Software3 . Einführung in das Prinzip der MySQL-Master-Slave-Replikation
4. MySQL-Master-Slave-Replikationsvorgang
> vi /etc/my.cnf
[mysqld] #用于同步的每台机器server-id都不能相同 server-id = 10 log-bin = /data/mysql56/data/mysql-bin
> service mysqld restart
> mysql -uroot -p > show variables like 'server_id';
> grant replication slave on *.* to "rep"@"%" identified by "123456"; > flush privileges; > select user,host from mysql.user; > show grants for rep@"%";
> flush table with read lock;
> show master status;
> mysqldump -uroot -p -A -B | gzip > /data/mysql_bak.$(date +%F).sql.gz
> unlock tables;
①Es gibt zwei Situationen, in denen Binlog in der Mitte geöffnet werden muss ②B der Kaskadensynchronisation A->B->C muss binlog öffnen ③Tun Sie es von der Slave-Bibliothek aus. Die Datenbanksicherung erfordert eine vollständige Sicherung und das Binlog-Protokoll muss eine vollständige Sicherung sein.
> vi /mysql-instance/3308/my.cnf [mysqld] server-id = 11 relay-log = /mysql-instance/3308/relay-bin relay-log-info-file = /mysql-instance/3308/relay-log.info
> /mysql-instance/3308/mysql restart
> mysql -uroot -p -S /mysql-instance/3308/mysql.sock > show variables like 'log_bin'; > show variables like 'server_id';
> gzip -d /data/mysql_bak.2017-01-15.sql.gz
> mysql -uroot -p -S /mysql-instance/3308/mysql.sock < /data/mysql_bak.2017-01-15.sql
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=3306, MASTER_USER='rep', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=396;
> cat /mysql-instance/3308/data/master.info
> mysql -uroot -p -S /mysql-instance/3308/mysql.sock -e "start slave;" > mysql -uroot -p -S /mysql-instance/3308/mysql.sock -e "show slave status\G;" > mysql -uroot -p -S /mysql-instance/3308/mysql.sock -e "show slave status\G" | egrep "IO_Running|SQL_Running|_Behind_Master"
> mysql -uroot -p -e "create database wohehe;" > mysql -uroot -p -S /mysql-instance/3308/mysql.sock -e "show databases;"
五、mysql主从复制线程状态说明及用途
1、主库线程的同步状态
> show processlist\G; *************************** 1. row *************************** Id: 5 User: rep Host: localhost:47605 db: NULL Command: Binlog Dump Time: 4728 State: Master has sent all binlog to slave; waiting for binlog to be updated Info: NULL
说明主库线程已从binlog读取更新,发送到了从库,线程处理空闲状态,等待binlog的事件更新。
2、从库线程的同频状态
> show processlist\G; *************************** 2. row *************************** Id: 6 User: system user Host: db: NULL Command: Connect Time: 5305 State: Slave has read all relay log; waiting for the slave I/O thread to update it Info: NULL
说明从库已读取所有中继日志,等待从库I/O线程的更新。
六、主从复制故障
如果我在从库上创建了一个库,然后去主库创建同名的库,那么这就会冲突了。
> show slave status; Slave_IO_Running: Yes Slave_SQL_Running: No Seconds_Behind_Master: NULL Last_Error: Error 'Can't create database 'xxxxx'; database exists' on query. Default database: 'xxxxx'. Query: 'create database xxxxx'
对于该冲突解决方法
方法一
> stop slave; #将同步指针移动下一个,如果多次不同步,可重复操作 > set global sql_slave_skip_counter = 1; > start slave;
方法二
> vi /mysql-instance/3308/my.cnf #把可以忽略的错误号事先在配置文件中配置 slave-skip-errors = 1002,1007,1032
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Beispielcode-Sharings der Master-Slave-Replikation von MySQL5.6 unter Centos7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Beim Laden von CentOS-7.0-1406 gibt es viele optionale Versionen. Für normale Benutzer wissen sie nicht, welche sie wählen sollen. Hier ist eine kurze Einführung: (1) CentOS-xxxx-LiveCD.ios und CentOS-xxxx-Was ist der Unterschied zwischen bin-DVD.iso? Ersteres hat nur 700 MB und letzteres 3,8 GB. Der Unterschied besteht nicht nur in der Größe, sondern der wesentlichere Unterschied besteht darin, dass CentOS-xxxx-LiveCD.ios nur in den Speicher geladen und ausgeführt und nicht installiert werden kann. Auf der Festplatte kann nur CentOS-xxx-bin-DVD1.iso installiert werden. (2) CentOS-xxx-bin-DVD1.iso, Ce

Öffnen Sie die Centos7-Seite und erscheinen Sie: Willkommen im Notfallmodus! Geben Sie nach der Anmeldung „journalctl -xb“ ein, um Systemprotokolle anzuzeigen, „systemctlreboot“ zum Neustarten und „systemctldefault“, um erneut zu versuchen, in den Standardmodus zu booten. Giverootpasswordformaintenance(??Strg-D???): Lösung: r ausführen

Im tmp-Verzeichnis des Centos7-Systems befindet sich viel Müll. Wie sollten Sie den Müll löschen? Werfen wir einen Blick auf das ausführliche Tutorial unten. Um die Liste der Dateien im tmp-Dateiverzeichnis anzuzeigen, führen Sie den Befehl cdtmp/ aus, um zum aktuellen Dateiverzeichnis von tmp zu wechseln, und führen Sie den Befehl ll aus, um die Liste der Dateien im aktuellen Verzeichnis anzuzeigen. Wie nachfolgend dargestellt. Verwenden Sie den Befehl rm, um Dateien zu löschen. Beachten Sie, dass der Befehl rm Dateien dauerhaft aus dem System löscht. Daher wird empfohlen, vor dem Löschen der Datei eine Eingabeaufforderung zu geben. Verwenden Sie den Befehl rm-i file name, warten Sie, bis der Benutzer den Löschvorgang bestätigt (y) oder den Löschvorgang überspringt (n), und das System führt die entsprechenden Vorgänge aus. Wie nachfolgend dargestellt.

Legen Sie aus Sicherheitsgründen Passwortregeln fest. Legen Sie die Anzahl der Tage fest, nach denen Passwörter ablaufen. Der Benutzer muss das Passwort innerhalb von Tagen ändern. Diese Einstellung betrifft nur erstellte Benutzer, nicht vorhandene Benutzer. Wenn Sie auf einen vorhandenen Benutzer festlegen, führen Sie den Befehl „chage -M (days) (user)“ aus. PASS_MAX_DAYS60#Passwort-Ablaufzeit PASS_MIN_DAYS3#Anfängliche Passwort-Änderungszeit PASS_MIN_LEN8#Mindestpasswortlänge PASS_WARN_AGE7#Passwort-Ablaufzeit-Aufforderung Wiederholen Sie die Passwortbeschränkung, verwenden Sie [root@linuxprobe~]#vi/etc/pam.d/system-auth#nearline15:

1.UncaughtError:Calltoundefinedfunctionmb_strlen(); Wenn der obige Fehler auftritt, bedeutet dies, dass wir die mbstring-Erweiterung nicht installiert haben. 2. Geben Sie das PHP-Installationsverzeichnis cd/temp001/php-7.1.0/ext/mbstring ein. 3. Starten Sie phpize( /usr/local/bin /phpize oder /usr/local/php7-abel001/bin/phpize) Befehl zum Installieren der PHP-Erweiterung 4../configure--with-php-config=/usr/local/php7-abel

Centos7 verfügt nicht über eine MySQL-Datenbank. Die Standarddatenbank ist Mariadb (ein Zweig von MySQL). Sie können die MySQL-Datenbank manuell installieren, indem Sie die folgenden Schritte ausführen. 1. Laden Sie die RPM-Installationsdatei wgethttp://repo.mysql.com/mysql-community-release-el7.rpm herunter. 2. Führen Sie rpm aus, um rpm-ivhmysql-community-release-el7.rpm zu installieren, nachdem die Abhängigkeitsauflösung abgeschlossen ist , werden die folgenden Optionen angezeigt: dependenciesresolved =================================

1. Der komprimierte Ordner ist eine ZIP-Datei [root@cgls]#zip-rmydata.zipmydata2. Entpacken Sie mydata.zip in das Verzeichnis mydatabak [root@cgls]#unzipmydata.zip-dmydatabak3.mydata01 und mydata02.txt werden komprimiert mydata.zip[root@cgls]#zipmydata.zipmydata01mydata02.txt4. Dekomprimieren Sie direkt die Datei mydata.zip [root@cgls]#unzipmydata.zip5

Wenn die Standard-Tastenkombinationen mit den Tasten der von Ihnen verwendeten Software in Konflikt stehen oder Sie die Tastenkombinationen entsprechend Ihren eigenen Gewohnheiten verwenden müssen, müssen Sie die Standard-Tastenkombinationen ändern und festlegen. Wie ändere ich die Standard-Tastenkombinationen von CentOS7? Werfen wir einen Blick auf das ausführliche Tutorial unten. 1. Starten Sie das Centos7-System in der virtuellen Maschine und rufen Sie den Desktop auf. 2. Klicken Sie auf Anwendungen->System-Tools->Einstellungen in der oberen linken Ecke. 3. Rufen Sie die Einstellungsoberfläche auf und klicken Sie auf das Gerät Klicken Sie auf das Element auf der rechten Seite und drücken Sie die Tastenkombination, die auf der Tastatur festgelegt werden soll, um die Tastenkombination zu ändern (beachten Sie, dass einige nicht geändert werden können!). 5. Klicken Sie nach der Änderung, wie unten gezeigt, schließlich auf Einstellungen, um die Tastenkombination einzustellen Die Änderung ist abgeschlossen.
