Android

So konfigurieren Sie mysql master

Mysql Installation on Linux

Mysql Installation on Linux

Inhaltsverzeichnis:

Anonim

Die MySQL-Replikation ist ein Prozess, mit dem Sie Daten automatisch von einem Datenbankserver auf einen oder mehrere Server kopieren können.

MySQL unterstützt eine Reihe von Replikationstopologien, wobei die Master / Slave-Topologie eine der bekanntesten Topologien ist, bei denen ein Datenbankserver als Master fungiert, während ein oder mehrere Server als Slaves fungieren. Standardmäßig ist die Replikation asynchron, wobei der Master Ereignisse, die Datenbankänderungen beschreiben, an sein Binärprotokoll sendet und die Slaves die Ereignisse anfordern, wenn sie bereit sind.

In diesem Tutorial wird erklärt, wie Sie eine MySQL-Master / Slave-Replikation mit einem Master- und einem Slave-Server unter CentOS 7 einrichten. Dieselben Schritte gelten für MariaDB.

Diese Art der Replikationstopologie eignet sich am besten für die Bereitstellung von Lesereplikaten für die Leseskalierung, die Sicherung von Live-Datenbanken für die Notfallwiederherstellung und für Analysejobs.

Voraussetzungen

In diesem Beispiel wird davon ausgegangen, dass Sie zwei Server unter CentOS 7 haben, die über ein privates Netzwerk miteinander kommunizieren können. Wenn Ihr Hosting-Anbieter keine privaten IP-Adressen bereitstellt, können Sie die öffentlichen IP-Adressen verwenden und Ihre Firewall so konfigurieren, dass der Datenverkehr auf Port 3306 nur von vertrauenswürdigen Quellen zugelassen wird.

Die Server in diesem Beispiel haben die folgenden IPs:

Master IP: 192.168.121.59 Slave IP: 192.168.121.14

installieren Sie MySQL

Die Standardeinstellung Die CentOS 7-Repositorys enthalten keine MySQL-Pakete, daher installieren wir MySQL von ihrem offiziellen Yum-Repository. Um Probleme zu vermeiden, installieren wir auf beiden Servern dieselbe MySQL-Version 5.7.

Installieren Sie MySQL sowohl auf dem Master- als auch auf dem Slave-Server:

sudo yum localinstall sudo yum install mysql-community-server

Starten Sie nach Abschluss der Installation den MySQL-Dienst und aktivieren Sie ihn für den automatischen Start beim Booten mit:

sudo systemctl enable mysqld sudo systemctl start mysqld

Wenn der MySQL-Server zum ersten Mal gestartet wird, wird ein temporäres Kennwort für den MySQL-Root-Benutzer generiert. Verwenden Sie den folgenden Befehl grep, um das Kennwort zu finden:

sudo grep 'temporary password' /var/log/mysqld.log

Führen Sie den Befehl mysql_secure_installation , um Ihr neues Root-Passwort mysql_secure_installation und die Sicherheit der MySQL-Instanz zu verbessern:

mysql_secure_installation

Geben Sie das temporäre root-Passwort ein und beantworten Sie alle Fragen mit Y (Ja).

Das neue Kennwort muss mindestens 8 Zeichen lang sein und mindestens einen Großbuchstaben, einen Kleinbuchstaben, eine Zahl und ein Sonderzeichen enthalten.

Konfigurieren Sie den Master-Server

Zuerst konfigurieren wir den Master-MySQL-Server und nehmen die folgenden Änderungen vor:

  • Legen Sie fest, dass der MySQL-Server die private IP überwacht. Legen Sie eine eindeutige Server-ID fest. Aktivieren Sie die binäre Protokollierung.

Öffnen Sie dazu die MySQL-Konfigurationsdatei und fügen Sie die folgenden Zeilen in die MySQL-Konfigurationsdatei ein Sektion:

sudo nano /etc/my.cnf master: /etc/my.cnf

bind-address = 192.168.121.59 server-id = 1 log_bin = mysql-bin

Starten Sie anschließend den MySQL-Dienst neu, damit die Änderungen wirksam werden

sudo systemctl restart mysqld

Der nächste Schritt ist das Erstellen eines neuen Replikationsbenutzers. Melden Sie sich als Root-Benutzer beim MySQL-Server an:

mysql -uroot -p

Führen Sie in der MySQL-Eingabeaufforderung die folgenden SQL-Abfragen aus, mit denen der replica und dem Benutzer das REPLICATION SLAVE Privileg REPLICATION SLAVE :

CREATE USER 'replica'@'192.168.121.14' IDENTIFIED BY 'strong_password';

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.14'; Stellen Sie sicher, dass Sie die IP mit Ihrer Slave-IP-Adresse ändern. Sie können den Benutzer nach Belieben benennen.

Führen Sie, während Sie sich noch in der MySQL-Eingabeaufforderung befinden, den folgenden Befehl aus, der den binären Dateinamen und die Position ausgibt.

SHOW MASTER STATUS\G

*************************** 1. row *************************** File: mysql-bin.000001 Position: 1427 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)

Notieren Sie sich den Dateinamen 'mysql-bin.000001' und die Position '1427'. Diese Werte benötigen Sie bei der Konfiguration des Slave-Servers. Diese Werte unterscheiden sich wahrscheinlich auf Ihrem Server.

Konfigurieren Sie den Slave-Server

Wie beim Master-Server oben nehmen wir die folgenden Änderungen am Slave-Server vor:

  • Stellen Sie den MySQL-Server so ein, dass er auf dem privaten IPSet einen eindeutigen Server überwacht, der die binäre Protokollierung ermöglicht

Öffnen Sie die MySQL-Konfigurationsdatei und bearbeiten Sie die folgenden Zeilen:

sudo nano /etc/my.cnf Slave: /etc/my.cnf

bind-address = 192.168.121.14 server-id = 2 log_bin = mysql-bin

Starten Sie den MySQL-Dienst neu:

sudo systemctl restart mysqld

Im nächsten Schritt konfigurieren Sie die Parameter, die der Slave-Server für die Verbindung zum Master-Server verwendet. Melden Sie sich bei der MySQL-Shell an:

mysql -uroot -p

Stoppen Sie zuerst die Slave-Threads:

STOP SLAVE;

Führen Sie die folgende Abfrage aus, mit der der Slave für die Replikation des Masters eingerichtet wird:

CHANGE MASTER TO MASTER_HOST='192.168.121.59', MASTER_USER='replica', MASTER_PASSWORD='strong_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1427;

Stellen Sie sicher, dass Sie die richtige IP-Adresse, den richtigen Benutzernamen und das richtige Kennwort verwenden. Der Name und die Position der Protokolldatei müssen mit den Werten übereinstimmen, die Sie vom Master-Server erhalten haben.

Sobald Sie fertig sind, starten Sie die Slave-Threads.

START SLAVE;

Testen Sie die Konfiguration

Zu diesem Zeitpunkt sollten Sie über ein funktionierendes Master / Slave-Replikationssetup verfügen.

Um sicherzustellen, dass alles wie erwartet funktioniert, erstellen wir eine neue Datenbank auf dem Masterserver:

mysql -uroot -p

CREATE DATABASE replicatest;

Melden Sie sich bei der Slave-MySQL-Shell an:

mysql -uroot -p

Führen Sie den folgenden Befehl aus, um alle Datenbanken aufzulisten:

SHOW DATABASES;

Sie werden feststellen, dass die auf dem Master-Server erstellte Datenbank auf dem Slave repliziert wird:

+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | replicatest | | sys | +--------------------+ 5 rows in set (0.00 sec)

Fazit

In diesem Tutorial haben wir gezeigt, dass Sie eine MySQL-Master / Slave-Replikation unter CentOS 7 erstellen.

Fühlen Sie sich frei, einen Kommentar zu hinterlassen, wenn Sie Fragen haben.

Centos MySQL Mariadb