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

So installieren und konfigurieren Sie MySQL Cluster unter CentOS 7

MySQL Cluster wurde entwickelt, um eine MySQL-kompatible Datenbank mit hoher Verfügbarkeit und geringer Latenz bereitzustellen. Die MySQL-Cluster-Technologie wird durch die Speicher-Engines NDB (Network DataBase) und NDBCLUSTER implementiert und bietet Shared-Nothing-Clustering und Auto-Sharding für MySQL-Datenbanksysteme. In der Shared-Nothing-Architektur hat jeder Knoten seinen eigenen Speicher und seine eigene Festplatte, die Verwendung von gemeinsam genutztem Speicher wie NFS, SANs wird nicht empfohlen und unterstützt.

Um einen MySQL-Cluster zu implementieren, müssen wir drei Arten von Knoten installieren. Jeder Knotentyp wird auf einem eigenen Server installiert. Die Komponenten sind:

1. Verwaltungsknoten – NDB_MGMD/MGM
    Der Clusterverwaltungsserver wird verwendet, um den anderen Knoten des Clusters zu verwalten. Wir können vom Verwaltungsknoten aus neue Knoten erstellen und konfigurieren, Knoten im Cluster neu starten, löschen oder sichern.

2. Datenknoten – NDBD/NDB
    Dies ist die Ebene, auf der der Prozess der Synchronisierung und Datenreplikation zwischen Knoten stattfindet.

3. SQL-Knoten – MySQLD/API
    Die Schnittstellenserver, die von den Anwendungen verwendet werden, um eine Verbindung zum Datenbankcluster herzustellen.

In diesem Tutorial führe ich Sie durch die Installation und Konfiguration eines MySQL-Clusters mit centOS 7. Wir konfigurieren den Verwaltungsknoten, zwei Datenknoten und zwei SQL-Knoten.

Voraussetzungen

  • Das Betriebssystem ist CentOS 7 - 64bit.
  • 5 CentOS-Server oder virtuelle Maschinen. Ich werde die Hostnamen und IP-Adressen wie unten gezeigt verwenden:
    • Verwaltungsknoten
      db1 =192.168.1.120
    • Datenknoten
      db2 =192.168.1.121
      db3 =192.168.1.122
    • SQL-Knoten
      db4 =192.168.1.123
      db5 =192.168.1.124

Schritt 1 – Verwaltungsknoten einrichten

Der erste Schritt besteht darin, den "Management Node" mit CentOS 7 db1 zu erstellen und IP 192.168.1.120 . Stellen Sie sicher, dass Sie als Root-Benutzer beim db1-Server angemeldet sind.

A. Laden Sie die MySQL Cluster-Software herunter

Ich werde es von der MySQL-Site mit wget herunterladen. Ich verwende hier das "Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit), RPM Bundle ", das mit CentOS 7 kompatibel ist. Extrahieren Sie dann die tar-Datei.

cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

B. Pakete installieren und entfernen

Bevor Sie das RPM-Paket für MySQL Cluster installieren, müssen Sie perl-Data-Dumper installieren die vom MySQL-Cluster-Server benötigt wird. Und Sie müssen mariadb-libs entfernen bevor wir MySQL Cluster installieren können.

yum -y install perl-Data-Dumper
yum -y remove mariadb-libs

C. MySQL-Cluster installieren

Installieren Sie das MySQL Cluster-Paket mit diesen RPM-Befehlen:

cd ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

Stellen Sie sicher, dass kein Fehler vorliegt.

D. MySQL-Cluster konfigurieren

Erstellen Sie ein neues Verzeichnis für die Konfigurationsdateien. Ich werde das Verzeichnis "/var/lib/mysql-cluster" verwenden.

mkdir -p /var/lib/mysql-cluster

Erstellen Sie dann eine neue Konfigurationsdatei für die Clusterverwaltung mit dem Namen "config.ini " im mysql-cluster-Verzeichnis.

cd /var/lib/mysql-cluster
vi config.ini

Fügen Sie die Konfiguration unten ein:

[ndb_mgmd default]
# Directory for MGM node log files
DataDir=/var/lib/mysql-cluster
 
[ndb_mgmd]
#Management Node db1
HostName=192.168.1.120
 
[ndbd default]
NoOfReplicas=2      # Number of replicas
DataMemory=256M     # Memory allocate for data storage
IndexMemory=128M    # Memory allocate for index storage
#Directory for Data Node
DataDir=/var/lib/mysql-cluster
 
[ndbd]
#Data Node db2
HostName=192.168.1.121
 
[ndbd]
#Data Node db3
HostName=192.168.1.122
 
[mysqld]
#SQL Node db4
HostName=192.168.1.123
 
[mysqld]
#SQL Node db5
HostName=192.168.1.124

Speichern Sie die Datei und beenden Sie sie.

E. Starten Sie den Verwaltungsknoten

Starten Sie als Nächstes den Verwaltungsknoten mit dem folgenden Befehl:

ndb_mgmd --config-file=/var/lib/mysql-cluster/config.ini

Das Ergebnis sollte ungefähr so ​​aussehen:

MySQL Cluster Management Server mysql-5.6.28 ndb-7.4.10
2016-03-22 19:26:08 [MgmtSrvr] INFO     -- The default config directory '/usr/mysql-cluster' does not exist. Trying to create it...
2016-03-22 19:26:08 [MgmtSrvr] INFO     -- Successfully created config directory

Der Verwaltungsknoten wird gestartet, jetzt können Sie den Befehl "ndb_mgm" verwenden, um den Knoten zu überwachen:

ndb_mgm
show

Sie können sehen, dass der Verwaltungsknoten gestartet wurde mit:mysql-6.6 und ndb-7.4.

Schritt 2 – Einrichten der MySQL-Cluster-Datenknoten

Wir werden 2 CentOS-Server für die Datenknoten verwenden.

  1. db2 =192.168.1.121
  2. db3 =192.168.1.122

A. Melden Sie sich als Root-Benutzer an und laden Sie die MySQL Cluster-Software herunter

Melden Sie sich mit ssh beim db2-Server an:

ssh [email protected]

Laden Sie dann das MySQL Cluster-Paket herunter und extrahieren Sie es:

cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

B. Pakete installieren und entfernen

Installieren Sie perl-Data-Dumper und entfernen Sie die mariadb-libs:

yum -y install perl-Data-Dumper
yum -y remove mariadb-libs

C. MySQL-Cluster installieren

Jetzt können wir die MySQL Cluster-Pakete für die Datenknoten mit diesen rpm-Befehlen installieren:

cd ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

Stellen Sie sicher, dass kein Fehler vorliegt.

D. Datenknoten konfigurieren

Erstellen Sie mit dem vi-Editor eine neue Konfigurationsdatei im Verzeichnis /etc:

vi /etc/my.cnf

Konfiguration unten einfügen:

[mysqld]
ndbcluster
ndb-connectstring=192.168.1.120     # IP address of Management Node
 
[mysql_cluster]
ndb-connectstring=192.168.1.120     # IP address of Management Node

Speichern Sie die Datei und beenden Sie sie.

Erstellen Sie dann das neue Verzeichnis für die Datenbankdaten, die wir in der Verwaltungsknoten-Konfigurationsdatei "config.ini" definiert haben.

mkdir -p /var/lib/mysql-cluster

Starten Sie nun den Datenknoten/ndbd:

ndbd

Ergebnisse:

2016-03-22 19:35:56 [ndbd] INFO     -- Angel connected to '192.168.1.120:1186'
2016-03-22 19:35:56 [ndbd] INFO     -- Angel allocated nodeid: 2

Datenknoten db2 verbunden mit der Verwaltungsknoten-IP 192.168.1.120.

E. Wiederholen Sie die Schritte 2.A - 2.D auf dem db3-Server.

Da wir 2 Datenknoten haben, wiederholen Sie bitte die Schritte 2.A - 2.D auf unserem zweiten Datenknoten.

Schritt 3 – SQL-Knoten einrichten

Dieser Schritt enthält die Einrichtung für den SQL-Knoten, der den Anwendungszugriff auf die Datenbank bereitstellt. Wir verwenden 2 CentOS-Server für die SQL-Knoten:

  1. db4 =192.168.1.123
  2. db5 =192.168.1.124

A. Anmelden und MySQL Cluster herunterladen

Melden Sie sich als Root-Benutzer beim db4-Server an:

ssh [email protected]

Und laden Sie das MySQL Cluster-Paket herunter:

cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

B. Pakete installieren und entfernen

Installieren Sie perl-Data-Dumper und entfernen Sie die mariadb-libs, die mit MySQL Cluster in Konflikt stehen.

yum -y install perl-Data-Dumper
yum -y remove mariadb-libs

C. MySQL-Cluster installieren

Installieren Sie den MySQL Cluster-Server, -Client und das gemeinsam genutzte Paket mit den folgenden rpm-Befehlen:

cd ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

D. Konfigurieren Sie den SQL-Knoten

Erstellen Sie eine neue my.cnf-Datei im /etc-Verzeichnis:

vi /etc/my.cnf

Und fügen Sie die Konfiguration unten ein:

[mysqld]
ndbcluster
ndb-connectstring=192.168.1.120       # IP address for server management node
default_storage_engine=ndbcluster     # Define default Storage Engine used by MySQL
 
[mysql_cluster]
ndb-connectstring=192.168.1.120       # IP address for server management node

Speichern Sie die Datei und verlassen Sie den Editor.

Starten Sie den SQL-Knoten, indem Sie den MySQL-Server starten:

service mysql start

E. Wiederholen Sie die Schritte 3.A - 3.D auf dem db5-Server.

Bitte wiederholen Sie die Schritte 3.A - 3.D auf dem zweiten SQL-Server (db5).

Schritt 4 – Cluster überwachen

Um den Clusterstatus zu sehen, müssen wir uns beim Verwaltungsknoten db1 anmelden.

ssh [email protected]

Wir können den Befehl ndb_mgm verwenden, um den Clusterstatus anzuzeigen:

ndb_mgm
ndb_mgm> show

Ein weiterer nützlicher Befehl ist:

ndb_mgm -e "all status"
ndb_mgm -e "all report memory"

Schritt 5 – Testen des Clusters

Um einen Test auf unserem neuen MySQL-Cluster durchzuführen, müssen wir uns bei den db4- oder db5-Servern der SQL-Knoten anmelden.

Melden Sie sich beim db4-Server an:

ssh [email protected]

Ändern Sie das standardmäßige MySQL-Passwort, das in ".mysql_secret gespeichert ist " Datei im Stammverzeichnis:

cd ~
cat .mysql_secret

das ist mein Beispiel:

# The random password set for the root user at Tue Mar 22 19:44:07 2016 (local time): qna3AwbJMuOnw23T

Ändern Sie nun das Passwort mit dem folgenden Befehl:

mysql_secure_installation

Geben Sie Ihr altes MySQL-Passwort und dann das neue ein und drücken Sie die Eingabetaste, um alles zu bestätigen.

Wenn alles erledigt ist, können Sie sich mit Ihrem Passwort bei der MySQL-Shell anmelden:

mysql -u root -p

Nachdem Sie sich angemeldet haben, erstellen Sie einen neuen Root-Benutzer mit dem Host „@ ", damit wir von außen auf MySQL zugreifen können.

CREATE USER 'root'@'%' IDENTIFIED BY 'aqwe123';

Ersetzen Sie aqwe123 mit Ihrem eigenen sicheren Passwort! Jetzt können Sie den neuen Root-Benutzer mit dem Host „@“ in der MySQL-Benutzerliste sehen:

select user, host, password from mysql.user;

Und gewähren Sie dem neuen Root-Benutzer Lese- und Schreibzugriff vom Remote-Knoten:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*94CC7BF027327993D738E11...(Encrypted PASSWORD)' WITH GRANT OPTION;

Versuchen Sie jetzt, eine neue Datenbank vom db4-Server zu erstellen, und Sie werden die Datenbank auch auf db5 sehen.

Dies ist nur ein Beispielergebnis zum Testen der Cluster-Datenreplikation.

Der MySQL-Cluster wurde erfolgreich auf CentOS 7 mit 5 Serverknoten eingerichtet.

Schlussfolgerung

MySQL Cluster ist eine Technologie, die Hochverfügbarkeit und Redundanz für MySQL-Datenbanken bietet. Es verwendet NDB oder NDBCLUSTER als Speicher-Engine und bietet Shared-Nothing-Clustering und Auto-Sharding für MySQL-Datenbanken. Um den Cluster zu implementieren, benötigen wir 3 Komponenten:Management Node (MGM), Data Nodes (NDB) und SQL Nodes (API). Jeder Knoten muss seinen eigenen Speicher und seine eigene Festplatte haben. Es wird nicht empfohlen, Netzwerkspeicher wie NFS zu verwenden. Um MySQL Cluster auf einem CentOS 7-Minimalsystem zu installieren, müssen wir das mariadb-libs-Paket entfernen, mariadb-libs steht in Konflikt mit MySQL-Cluster-Server und Sie müssen das perl-Data-Dumper-Paket installieren, es wird von MySQL-Cluster benötigt -Server. Ein MySQL-Cluster lässt sich einfach auf mehreren CentOS-Servern installieren und konfigurieren.


Cent OS
  1. So installieren und konfigurieren Sie Nginx unter CentOS 7

  2. So installieren Sie Node.js und NPM unter CentOS 7

  3. So installieren und konfigurieren Sie Redis unter CentOS 7

  4. So installieren und konfigurieren Sie GitLab unter CentOS 7

  5. So installieren Sie Node.js und NPM unter CentOS

So installieren und konfigurieren Sie einen Docker Swarm-Cluster unter CentOS 8

So installieren und konfigurieren Sie Nagios 4.0.7 unter CentOS 7

So installieren und konfigurieren Sie ISPConfig CP unter CentOS 7

So installieren und konfigurieren Sie ownCloud auf CentOS 7

So installieren und konfigurieren Sie Samba unter CentOS 8

So installieren und konfigurieren Sie Fail2ban unter CentOS 8