Android

So konfigurieren Sie mysql master

Mysql Installation on Linux

Mysql Installation on Linux

Inhaltsverzeichnis:

Anonim

Die MySQL-Replikation ist ein Prozess, mit dem Daten von einem Datenbankserver automatisch auf einen oder mehrere Server kopiert werden 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.

Dieses Tutorial behandelt ein grundlegendes Beispiel für die MySQL Master / Slave-Replikation mit einem Master- und einem Slave-Server unter Ubuntu 18.04. 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 auf zwei Servern Ubuntu 18.04 ausgeführt wird, die über ein privates Netzwerk miteinander kommunizieren können. Wenn Ihr Hosting-Provider keine privaten IP-Adressen anbietet, 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.190 Slave IP: 192.168.121.236

installieren Sie MySQL

Das Standard-Repository von Ubuntu 18.04 enthält MySQL Version 5.7. Um Probleme zu vermeiden, ist es am besten, auf beiden Servern dieselbe MySQL-Version zu installieren.

Installieren Sie MySQL auf dem Master-Server:

sudo apt-get update sudo apt-get install mysql-server

Installieren Sie MySQL auf dem Slave-Server mit den gleichen Befehlen:

sudo apt-get update sudo apt-get install mysql-server

Konfigurieren Sie den Master-Server

Der erste Schritt ist die Konfiguration des Master-MySQL-Servers. Wir werden die folgenden Änderungen vornehmen:

  • 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 entfernen Sie das Kommentarzeichen oder legen Sie Folgendes fest:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf master: /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address = 192.168.121.190 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log

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

sudo systemctl restart mysql

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

sudo mysql

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.236' IDENTIFIED BY 'replica_password';

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.236'; 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: 629 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 '629'. 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/mysql/mysql.conf.d/mysqld.cnf Slave: /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address = 192.168.121.236 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log

Starten Sie den MySQL-Dienst neu:

sudo systemctl restart mysql

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:

sudo mysql

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.190', MASTER_USER='replica', MASTER_PASSWORD='replica_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=629;

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:

sudo mysql

CREATE DATABASE replicatest;

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

sudo mysql

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 erstellen.

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

Ubuntu MySQL Mariadb