Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erläuterung des MySQL-Master-Slave-Konfigurationsbeispiels

Detaillierte Erläuterung des MySQL-Master-Slave-Konfigurationsbeispiels

小云云
小云云Original
2018-03-21 09:11:551510Durchsuche

Warum ist es notwendig, eine MySQL-Master-Slave-Konfiguration durchzuführen und welche Vorteile bietet sie? In diesem Artikel werden hauptsächlich detaillierte Erläuterungen zu MySQL-Master-Slave-Konfigurationsbeispielen vorgestellt, in der Hoffnung, allen zu helfen.

1: Serverlastausgleich implementieren

Nur ​​der Hauptserver implementiert Datenaktualisierungsvorgänge und kümmert sich nicht um Datenabfragen. Abfrageanfragen können an mehrere Slave-Server weitergeleitet werden. Das Platzieren von Datenaktualisierungen und -abfragen auf verschiedenen Servern kann die Datensicherheit verbessern, die Reaktionszeit von Anwendungen verkürzen und die Systemleistung verbessern.

2: Off-Site-Sicherung von Daten durch Replikation

Datensicherung ist jederzeit ein sehr wichtiger Schritt, und die MySQL-Master-Slave-Konfiguration kann eine sehr gute Off-Site-Sicherung erreichen Nun, dieses Problem wurde perfekt gelöst.

3: Verbessern Sie die Verfügbarkeit des Datenbanksystems

Die Datenbankreplikationsfunktion realisiert die Datensynchronisierung zwischen dem Master-Server und dem Slave-Server und erhöht so die Verfügbarkeit des Datenbanksystems. Wenn auf dem Master-Server ein Problem auftritt, kann der Datenbankadministrator den Slave-Server sofort zum Master-Server für Datenaktualisierungs- und Abfragedienste machen.

Wie kopiert der Slave die Daten auf den Master?

1: Wenn sich die Daten im Master ändern, werden die Änderungen im Binärprotokoll aufgezeichnet.

2: Der Slave kopiert das Protokoll des Masters in sein eigenes Relay-Protokoll.

3: Slave aktualisiert Daten basierend auf Protokolldatensätzen.

Master-Slave-MySQL konfigurieren

1: Master-Server konfigurieren

(1): Erstellen Sie einen Benutzer-Link auf Master-MySQL und autorisieren Sie ihn Andere Slave-Server können über den Link-Benutzer remote auf den Master zugreifen, das Binärprotokoll lesen und eine Datensynchronisierung erreichen.

  1. MySQL> Benutzerlink erstellen;

  2. MySQL> REPLICATION SLAVE ON gewähren *.* TO 'link'@'%' IDENTIFIED BY 'mysql';

(2): Ändern Sie die MySQL-Konfigurationsdatei my.ini (Windows) / my.cnf (Linux). )

Wenn es sich um eine Linux-Umgebung handelt, ändern Sie die Datei /etc/my.cnf. Wenn es sich um eine Windows-Umgebung handelt, suchen Sie die Datei my.ini im MySQL-Installationsverzeichnis. Fügen Sie die folgenden Anweisungszeilen unter [mysqld] hinzu:

  1. server-id=1   //给数据库服务的唯一标识,必须唯一  
    log-bin=master-bin //开启二进制日志  
    log-bin-index=master-bin.index

(3) Starten Sie MySQL neu und überprüfen Sie den Status. Die Ausgabe lautet wie folgt: Kann

mysql> SHOW MASTER STATUS;  
+-------------------+----------+--------------+------------------+-------------------+  
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |  
+-------------------+----------+--------------+------------------+-------------------+  
| master-bin.000001 |      350 |              |                  |                   |  
+-------------------+----------+--------------+------------------+-------------------+  
1 row in set (0.00 sec)

2: Slave-Server konfigurieren

(1) Ändern Sie die MySQL-Konfigurationsdatei und fügen Sie die folgenden Zeilen hinzu:

  1. server-id=2
    relay-log-index=slave-relay-bin.index   
    relay-log=slave-relay-bin //配置中继日志  
    log_slave_updates = 1 //表示slave将复制事件写进自己的二进制日志  
    #replicate-do-table=bison.user //库名.表名  用来指定只对数据库中的某张表做同步

(2) Starten Sie MySQL neu und stellen Sie eine Verbindung zum Master her

Nachdem der MySQL-Neustart abgeschlossen ist, melden Sie sich bei MySQL an und verwenden Sie die CHANGE MASTER TO-Anweisung, um eine Verbindung zum Master herzustellen

mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.123',//主服务器ip  
    -> MASTER_USER='link',  
    -> MASTER_PASSWORD='mysql',  
    -> MASTER_LOG_FILE='mysql-bin.000001',//master服务器日志文件,主服务器mysql使用SHOW MASTER STATUS语句  
    -> MASTER_LOG_POS=0;//日志的开始位置

(3) Überprüfen Sie, ob es richtig konfiguriert ist

  1. mysql> SHOW SLAVE STATUS\G

部分显示如下:  
*************************** 1. row ***************************  
             Slave_IO_State:  
                Master_Host: server1  
                Master_User: repl  
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: mysql-bin.000001
        Read_Master_Log_Pos: 4
             Relay_Log_File: mysql-relay-bin.000001
              Relay_Log_Pos: 4
      Relay_Master_Log_File: mysql-bin.000001
          <span style="color:#ff0000;"><strong> Slave_IO_Running: No  
          Slave_SQL_Running: No</strong></span>
  1. (4) Slave einschalten

  2. MySQL> Slave starten

Konfiguration anzeigen:

mysql> SHOW SLAVE STATUS\G  
部分显示如下:主要看Slave_IO_Running和Slave_SQL_Running  
*************************** 1. row ***************************  
               Slave_IO_State: Waiting for master to send event  
                  Master_Host: 192.168.1.234
                  Master_User: link  
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: master-bin.000001
          Read_Master_Log_Pos: 350
               Relay_Log_File: slave-relay-bin.000002
                Relay_Log_Pos: 548
        Relay_Master_Log_File: master-bin.000001
             Slave_IO_Running: Yes  
            Slave_SQL_Running: Yes

ok Versuchen wir nun, eine Datenbank auf dem Hauptserver zu erstellen.

Verwandte Empfehlungen:

Einführung in die Master-Slave-Konfiguration im MySQL-Server

MySQL-Serie (15) MySQL-Master-Slave-Konfiguration

Detaillierte Erläuterung der Master-Slave-Konfiguration der MySQL-Datenbank

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des MySQL-Master-Slave-Konfigurationsbeispiels. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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