GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So richten Sie die MySQL-Replikation unter CentOS ein

In diesem Tutorial zeigen wir Ihnen, wie Sie die grundlegende MySQL-Replikation auf zwei CentOS 7-Servern einrichten, aber die gleichen Schritte sollten auf allen RPM-basierten Systemen funktionieren. Für dieses Tutorial verwenden wir zwei virtuelle CentOS 7-Testserver mit den folgenden IP-Adressen:


MEISTER: 123.456.789.1
SLAVE: 123.456.789.2

Master-Server:

1. Anmeldung über SSH

Melden Sie sich als Benutzer root

beim Master-Server an
ssh root@IP_Address

2. MySQL-Server installieren

und installieren Sie den MySQL-Server, falls er noch nicht installiert ist

yum install mysql-server mysql

3. Starten Sie den MySQL-Server

Starten Sie den MySQL-Server und aktivieren Sie ihn so, dass er beim Booten gestartet wird

systemctl start mysql
systemctl enable mysql

4. MySQL-Server konfigurieren

Öffnen Sie als Nächstes die MySQL-Konfigurationsdatei mit einem Texteditor und fügen Sie die folgenden Zeilen hinzu

vi /etc/my.cnf
server-id = 1
binlog-do-db=database
relay-log = mysql-relay-bin
relay-log-index = mysql-relay-bin.index
log-bin = mysql-bin

Vergessen Sie nicht, „Datenbank“ zu ersetzen ‘ durch den tatsächlichen Namen der Datenbank, die Sie auf den Slave-Server replizieren möchten.

5. Starten Sie den MySQL-Server neu

Speichern Sie die Konfigurationsdatei und starten Sie den MySQL-Server neu, damit die Änderungen wirksam werden

systemctl restart mysql

6. Erstellen Sie einen MySQL-Benutzer für den Slave-Server und konfigurieren Sie ihn

Melden Sie sich als Benutzer root beim MySQL-Server an und erstellen Sie einen Benutzer, der vom Slave verwendet wird

mysql -u root -p
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slaveuser'@'%' IDENTIFIED BY 'PASSWORD'
mysql> FLUSH PRIVILEGES;
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      245 | database     |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

mysql> exit

Wir benötigen die Koordinaten des Masters, die für den Slave-Server verwendet werden, also notieren Sie sie.

Datei: mysql-bin.000001
Position: 245

Ersetzen Sie „PASSWORT ‘ mit einem wirklich starken Passwort.

Wenn die Datenbank, die Sie replizieren möchten, nicht leer ist, erstellen Sie jetzt einen Dump von der Datenbank

mysqldump -u root -p --master-data database > /root/database.sql

und übertrage die Dump-Datei auf den Slave-Server

rsync -Waq -e ssh /root/database.sql 123.456.789.2:/root

Slave-Server:

7. Melden Sie sich über SSH an und installieren Sie MySQL Server auf dem Slave-Server

Der nächste Schritt ist die Konfiguration des Slave-Servers. Melden Sie sich über SSH als Benutzer root beim Slave-Server an und installieren Sie den MySQL-Server wie auf dem Master-Server.

Nachdem der MySQL-Server installiert und gestartet wurde, öffnen Sie seine Konfigurationsdatei und fügen Sie die folgenden Zeilen hinzu:

vi /etc/my.cnf
server-id = 2
master-host=123.456.789.1
master-connect-retry=60
master-user=slaveuser
master-password=PASSWORD
replicate-do-db=database
relay-log = mysql-relay-bin
log-bin = mysql-bin

8. Starten Sie den MySQL-Server neu

Speichern Sie die Datei und starten Sie den MySQL-Server neu, damit die Änderungen wirksam werden.

systemctl restart mysql

Importieren Sie die MySQL-Dump-Datei, die wir auf dem Master-Server erstellt haben

mysql -u root -p < /root/database.sql

9. MySQL-Server konfigurieren

Melden Sie sich als Benutzer root bei MySQL an, stoppen Sie den Slave und konfigurieren Sie ihn, wo er nach der „Master-Protokolldatei“ suchen soll

mysql -u root -p
mysql> slave stop;
mysql> CHANGE MASTER TO MASTER_HOST='123.456.789.1', MASTER_USER='slaveuser', MASTER_PASSWORD='PASSWORD', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=245;
mysql> slave start;

Verwenden Sie den MySQL-Benutzernamen und das Passwort, die wir auf dem Master-Server erstellt haben.

Sie können den Slave-Status überprüfen, indem Sie den folgenden MySQL-Befehl ausführen:

mysql> show slave status;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 123.456.789.1
                  Master_User: slaveuser
                  Master_Port: 3306
              Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: database

Wenn „Slave_IO_State ‘ meldet ‘Warten auf Master, um Ereignis zu senden’, die Replikation war erfolgreich.

Das ist alles. So einfach ist das. Wenn Sie weitere Informationen zum Einrichten einer Replikations-Master-Konfiguration benötigen, finden Sie diese auf der offiziellen MySQL-Website.

Natürlich müssen Sie die MySQL-Replikation nicht auf CentOS einrichten, wenn Sie einen unserer MySQL-Hosting-Dienste nutzen. In diesem Fall können Sie einfach unsere erfahrenen Linux-Administratoren bitten, die MySQL-Replikation auf CentOS für Sie einzurichten. Sie sind 24×7 erreichbar und kümmern sich umgehend um Ihr Anliegen. Sie können auch nach neuen Updates unter How to Install MySQL on CentOS 7 suchen.

PS. Wenn Ihnen dieser Beitrag zur Einrichtung der MySQL-Replikation auf CentOS gefallen hat, teilen Sie ihn bitte mit Ihren Freunden in den sozialen Netzwerken über die Schaltflächen auf der linken Seite oder hinterlassen Sie einfach unten eine Antwort. Danke.


Cent OS
  1. So installieren Sie den MySQL 8-Datenbankserver unter CentOS 8

  2. So entfernen Sie MySQL Server vollständig in CentOS

  3. So installieren Sie den MySQL-Datenbankserver unter CentOS

  4. So installieren Sie MySQL Server unter CentOS 7

  5. Wie richte ich einen NTP-Server in CentOS ein?

So richten Sie den NFS-Server unter CentOS 8 / RHEL 8 ein

So richten Sie einen SVN-Server unter CentOS ein

So installieren Sie MySQL 8 unter CentOS 8

So richten Sie die MySQL-Replikation in RHEL/Centos ein

So richten Sie HAProxy unter CentOS 8 ein

Wie richte ich die MySQL-Master-Slave-Replikation auf RHEL 7 ein?