GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So richten Sie einen MySQL 8-Cluster mit drei Knoten unter Debian 10 ein

MySQL ist ein kostenloses, Open-Source- und relationales Datenbankverwaltungssystem. Es wird verwendet, um Daten für verschiedene Zwecke zu speichern, einschließlich Data Warehousing, E-Commerce und Protokollierungsanwendungen. MySQL Cluster ist eine Technologie, die Skalierbarkeit und Verfügbarkeit zu geringen Kosten bietet.

In diesem Tutorial verwenden wir einen Masterknoten zum Speichern der Clusterkonfiguration und zwei Datenknoten zum Speichern der Clusterdaten. Die IP-Adresse jedes Knotens wird unten gezeigt:

  • Master- oder Manager-Knoten – 104.245.33.61
  • Datenknoten1 - 104.245.32.195
  • Datenknoten2 - 69.87.218.169

Voraussetzungen

  • Drei Server mit Debian 10, einer für den Manager-Knoten und die anderen sind Datenknoten.
  • Ein Root-Passwort wird auf jedem Server eingerichtet.

Erste Schritte

Zuerst müssen Sie alle Server auf die neueste Version aktualisieren. Sie können alle mit dem folgenden Befehl aktualisieren:

apt-get update -y

Sobald alle Server aktualisiert sind, können Sie mit dem nächsten Schritt fortfahren.

Mysql-Cluster-Manager installieren und einrichten

Zuerst müssen Sie das MySQL-Clusterverwaltungspaket auf dem Master-Knoten installieren. Standardmäßig ist dieses Paket nicht im Standard-Repository von Debian 10 enthalten. Sie müssen es also von der offiziellen MySQL-Website herunterladen.

Sie können es mit dem folgenden Befehl herunterladen:

wget https://cdn.mysql.com//Downloads/MySQL-Cluster-8.0/mysql-cluster-community-management-server_8.0.24-1debian10_amd64.deb

Nachdem Sie die deb-Datei heruntergeladen haben, installieren Sie sie mit dem folgenden Befehl:

dpkg -i mysql-cluster-community-management-server_8.0.24-1debian10_amd64.deb

Sobald die Installation abgeschlossen ist, erstellen Sie mit dem folgenden Befehl ein Verzeichnis zum Speichern der Clusterkonfiguration:

mkdir /var/lib/mysql-cluster

Als nächstes erstellen Sie eine neue Konfigurationsdatei mit dem folgenden Befehl:

nano /var/lib/mysql-cluster/config.ini

Fügen Sie die folgenden Zeilen hinzu:

[ndbd default]NoOfReplicas=2 # Anzahl der Replicas[ndb_mgmd]# Verwaltungsprozessoptionen:hostname=104.245.33.61 #IP des MySQL Cluster Managerdatadir=/var/lib/mysql-cluster[ndbd]hostname=104.245. 32.195 #IP der ersten Daten nodeNodeId=2 # Knoten-ID für diese Daten nodedatadir=/usr/local/mysql/data # Remote-Verzeichnis für die Datendateien[ndbd]hostname=69.87.218.169 #IP der zweiten Daten nodeNodeId=3 # Knoten-ID für diese Daten nodedatadir=/usr/local/mysql/data # Remote-Verzeichnis für die Datendateien[mysqld]# SQL-Knotenoptionen:hostname=104.245.33.61 #IP des MySQL-Cluster-Managers

Speichern und schließen Sie die Datei, wenn Sie fertig sind, und starten Sie dann den Cluster-Manager mit dem folgenden Befehl:

ndb_mgmd -f /var/lib/mysql-cluster/config.ini

Sie sollten die folgende Ausgabe erhalten:

MySQL Cluster Management Server mysql-8.0.24 ndb-8.0.242021-05-10 08:23:05 [MgmtSrvr] INFO – Das standardmäßige Konfigurationsverzeichnis „/usr/mysql-cluster“ existiert nicht. Versuch, es zu erstellen ... 2021-05-10 08:23:05 [MgmtSrvr] INFO -- Konfigurationsverzeichnis erfolgreich erstellt

Beenden Sie nun den laufenden Server mit dem folgenden Befehl:

pkill -f ndb_mgmd

Erstellen Sie als Nächstes eine systemd-Dienstdatei für MySQL Cluster Manager, um den Dienst zu verwalten:

nano /etc/systemd/system/ndb_mgmd.service

Fügen Sie die folgenden Zeilen hinzu:

[Unit]Description=MySQL NDB Cluster Management ServerAfter=network.target auditd.service[Service]Type=forkingExecStart=/usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.iniExecReload=/bin /kill -HUP $MAINPIDKillMode=processRestart=on-failure[Install]WantedBy=multi-user.target

Speichern und schließen Sie die Datei und laden Sie dann den systemd-Daemon mit dem folgenden Befehl neu:

systemctl daemon-reload

Starten Sie als Nächstes den Cluster-Manager und aktivieren Sie ihn mit dem folgenden Befehl, damit er beim Systemneustart gestartet wird:

systemctl start ndb_mgmd
systemctl aktiviert ndb_mgmd

Sie können jetzt den Status des Dienstes mit dem folgenden Befehl überprüfen:

systemctl-Status ndb_mgmd

Sie sollten die folgende Ausgabe erhalten:

? ndb_mgmd.service – MySQL NDB-Clusterverwaltungsserver Geladen:geladen (/etc/systemd/system/ndb_mgmd.service; deaktiviert; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (läuft) seit Mo 10.05.2021 08:23:53 UTC; vor 6s Prozess:984 ExecStart=/usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini (code=exited, status=0/SUCCESS) Main PID:985 (ndb_mgmd) Tasks:12 (limit :2359) Speicher:6,5 MB CGroup:/system.slice/ndb_mgmd.service ??985 /usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.iniMay 10 08:23:53 master systemd[1 ]:MySQL NDB Cluster Management Server wird gestartet ... 10. Mai 08:23:53 master ndb_mgmd[984]:MySQL Cluster Management Server mysql-8.0.24 ndb-8.0.24 10. Mai 08:23:53 master systemd[1]:MySQL NDB Cluster Management Server gestartet.

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Installieren und konfigurieren Sie Datenknoten

Als Nächstes werden wir Datenknotenpakete auf anderen Servern erstellen und für die Kommunikation mit MySQL Cluster Manager konfigurieren.

Installieren Sie zuerst die erforderlichen Abhängigkeiten auf beiden Datenknoten mit dem folgenden Befehl:

apt-get install libclass-methodmaker-perl -y

Sobald alle Abhängigkeiten installiert sind, laden Sie die neueste Version der Deb-Datei von MySQL Data Nodes mit dem folgenden Befehl herunter:

wget https://cdn.mysql.com//Downloads/MySQL-Cluster-8.0/mysql-cluster-community-data-node_8.0.24-1debian10_amd64.deb

Sobald der Download abgeschlossen ist, installieren Sie die heruntergeladene Datei mit dem folgenden Befehl:

dpkg -i mysql-cluster-community-data-node_8.0.24-1debian10_amd64.deb

Standardmäßig speichern Datenknoten alle Konfigurationen in der Datei /etc/my.cnf.

Erstellen Sie also eine neue /etc/my.cnf-Datei auf beiden Datenknoten mit dem folgenden Befehl:

nano /etc/my.cnf

Fügen Sie die Cluster-IP wie unten gezeigt hinzu:

[mysql_cluster]# Optionen für NDB-Cluster-Prozesse:ndb-connectstring=104.245.33.61 #IP des MySQL-Cluster-Managers

Speichern und schließen Sie die Datei und erstellen Sie dann ein Datenverzeichnis auf beiden Datenknoten:

mkdir -p /usr/local/mysql/data

Starten Sie nun die Datenknoten mit folgendem Befehl:

ndbd

Sie sollten die folgende Ausgabe erhalten:

2021-05-10 08:27:13 [ndbd] INFO -- Angel verbunden mit '104.245.33.61:1186'2021-05-10 08:27:13 [ndbd] INFO -- Angel zugeteilte Knoten-ID:2 

Beenden Sie als Nächstes den laufenden ndbd-Prozess mit dem folgenden Befehl:

pkill -f ndbd

Erstellen Sie als Nächstes mit dem folgenden Befehl eine systemd-Dienstdatei für ndbd auf beiden Datenknoten:

nano /etc/systemd/system/ndbd.service

Fügen Sie die folgenden Zeilen hinzu:

[Unit]Description=MySQL NDB Data Node DaemonAfter=network.target auditd.service[Service]Type=forkingExecStart=/usr/sbin/ndbdExecReload=/bin/kill -HUP $MAINPIDKillMode=processRestart=on-failure[Install ]WantedBy=multi-user.target

Speichern und schließen Sie die Datei und laden Sie dann den systemd-Daemon mit dem folgenden Befehl neu:

systemctl daemon-reload

Als nächstes starten Sie den ndbd-Dienst und sorgen dafür, dass er beim Systemneustart mit dem folgenden Befehl startet:

systemctl start ndbd
systemctl enable ndbd

Sie können den Status des ndbd-Dienstes auch mit dem folgenden Befehl überprüfen:

systemctl status ndbd

Sie sollten die folgende Ausgabe erhalten:

? ndbd.service – MySQL NDB Data Node Daemon Geladen:geladen (/etc/systemd/system/ndbd.service; deaktiviert; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (läuft) seit Mo 10.05.2021 08:28:28 UTC; Vor 12s Prozess:740 ExecStart=/usr/sbin/ndbd (code=exited, status=0/SUCCESS) Haupt-PID:741 (ndbd) Tasks:46 (limit:2359) Speicher:827.1M CGroup:/system.slice/ ndbd.service ??741 /usr/sbin/ndbd ??742 /usr/sbin/ndbdMay 10 08:28:28 data1 systemd[1]:MySQL NDB Data Node Daemon wird gestartet...May 10 08:28:28 data1 ndbd[740]:2021-05-10 08:28:28 [ndbd] INFO - Angel verbunden mit '104.245.33.61:1186' 10. Mai 08:28:28 data1 ndbd[740]:2021-05-10 08 :28:28 [ndbd] INFO -- Angel zugewiesene Knoten-ID:2. Mai 10 08:28:28 data1 systemd[1]:Started MySQL NDB Data Node Daemon.

Installieren und konfigurieren Sie MySQL Server

Als Nächstes laden wir die MySQL-Server- und -Client-Pakete herunter und installieren sie auf dem MySQL-Cluster-Manager-Knoten.

Laden Sie zunächst die neueste Version von MySQL Cluster Bundle mit dem folgenden Befehl herunter:

wget https://cdn.mysql.com/Downloads/MySQL-Cluster-8.0/mysql-cluster_8.0.24-1debian10_amd64.deb-bundle.tar

Extrahieren Sie als Nächstes die heruntergeladene Datei im Verzeichnis /opt mit dem folgenden Befehl:

tar -xvf mysql-cluster_8.0.24-1debian10_amd64.deb-bundle.tar -C /opt

Wechseln Sie als Nächstes in das Verzeichnis /opt und installieren Sie die erforderlichen Abhängigkeiten mit dem folgenden Befehl:

cd /opt
apt-get install libaio1 libmecab2 libnuma1 psmisc -y

Als nächstes installieren Sie die MySQL Common deb-Datei mit dem folgenden Befehl:

dpkg -i mysql-common*

Als nächstes installieren Sie die MySQL-Client-Pakete mit dem folgenden Befehl:

dpkg -i mysql-cluster-community-client_8.0.24-1debian10_amd64.deb mysql-cluster-community-client-core_8.0.24-1debian10_amd64.deb mysql-cluster-community-client-plugins_8.0.24-1debian10_amd64.deb
dpkg -i mysql-client_8.0.24-1debian10_amd64.deb
dpkg -i mysql-cluster-community-server*

Wenn Sie einen Abhängigkeitsfehler erhalten, führen Sie den folgenden Befehl aus:

apt-get install -f

Installieren Sie als Nächstes das MySQL Server-Paket mit dem folgenden Befehl:

dpkg -i mysql-server_8.0.24-1debian10_amd64.deb

Während der Installation werden Sie aufgefordert, ein MySQL-Root-Passwort festzulegen.

Nach der Installation des MySQL-Servers müssen Sie die MySQL-Hauptkonfigurationsdatei bearbeiten und die Cluster-IP definieren:

nano /etc/mysql/my.cnf

Fügen Sie die folgenden Zeilen hinzu:

[mysqld]# Optionen für mysqld-Prozess:ndbcluster # NDB-Speicher-Engine ausführen[mysql_cluster]# Optionen für NDB-Cluster-Prozesse:ndb-connectstring=104.245.33.61 #IP des MySQL-Cluster-Managers

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie als Nächstes den MySQL-Dienst neu und aktivieren Sie ihn so, dass er beim Systemneustart gestartet wird:

systemctl startet mysql neu
systemctl aktiviert mysql

Sie können den Status des MySQL-Servers mit dem folgenden Befehl überprüfen:

systemctl status mysql

Sie sollten die folgende Ausgabe sehen:

? mysql.service – MySQL Cluster Community Server Geladen:geladen (/lib/systemd/system/mysql.service; aktiviert; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (läuft) seit Mo 10.05.2021 08:35:04 UTC; Vor 7s Dokumente:man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Prozess:1950 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS) Main PID:1985 (mysqld) Status:„Server is operational“ Tasks:47 (limit:2359) Memory:372.0M CGroup:/system.slice/mysql.service ?? 1985 /usr/sbin/mysqldMay 10 08:35:01 master systemd[1]:MySQL Cluster Community Server gestartet...10. Mai 08:35:04 master systemd[1]:MySQL Cluster Community Server gestartet.

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

MySQL-Cluster testen

Jetzt haben wir den MySQL-Cluster mit drei Knoten erfolgreich installiert und konfiguriert. Als nächstes müssen Sie überprüfen, ob es funktioniert oder nicht.

Melden Sie sich zuerst beim MySQL Cluster Manager-Knoten an und melden Sie sich mit dem folgenden Befehl bei MySQL an:

mysql -u root -p

Geben Sie Ihr MySQL-Root-Passwort ein und überprüfen Sie dann die Cluster-Informationen mit dem folgenden Befehl:

mysql> SHOW ENGINE NDB STATUS \G

Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe erhalten:

*************************** 1. Reihe ***************** ********** Typ:ndbclus Name:connectionStatus:cluster_node_id=4, connected_host=104.245.33.61, connected_port=1186, number_of_data_nodes=2, number_of_ready_data_nodes=2, connect_count=0******** ****************** 2. Reihe ************************** Typ :ndbclus Name:NdbTransactionStatus:created=2, free=2, sizeof=392**************************** 3. Zeile *** ************************ Typ:ndbclus Name:NdbOperationStatus:erstellt=4, frei=4, Größe=944******** ****************** 4. Reihe ************************* Typ :ndbclus Name:NdbIndexScanOperationStatus:created=0, free=0, sizeof=1152**************************** 5. Zeile *** ************************ Typ:ndbclus Name:NdbIndexOperationStatus:erstellt=0, frei=0, Größe=952******** ****************** 6. Reihe ************************* Typ :ndbclus Name:NdbRecAttrStatus:created=0, free=0, sizeof=88**************************** 7. Zeile *** ************************ Typ:ndbclus Name:NdbApiSignalStatus:created=16, free=16, sizeof=144**************************** 8. Zeile **** ********************* Typ:ndbclus Name:NdbLabelStatus:erstellt=0, frei=0, Größe=200********* ***************** 9. Reihe ************************* Typ:ndbclus Name:NdbBranchStatus:created=0, free=0, sizeof=32**************************** 10. Zeile **** ********************** Typ:ndbclus Name:NdbSubroutineStatus:erstellt=0, frei=0, Größe=72********* ***************** 11. Reihe ************************* Typ:ndbclus Name:NdbCallStatus:created=0, free=0, sizeof=24**************************** 12. Zeile **** ********************* Typ:ndbclus Name:NdbBlobStatus:erstellt=0, frei=0, Größe=592********* ***************** 13. Reihe **************************** Typ:ndbclus Name:NdbReceiverStatus:created=0, free=0, sizeof=128**************************** 14. Zeile **** ********************** Typ:ndbclus Name:NdbLockHandleStatus:erstellt=0, frei=0, Größe=48********* * ***************** 15. Zeile ************************* Typ:ndbclus Name:binlogStatus:Latest_epoch=897648164875, Latest_trans_epoch=820338753551, Latest_received_binlog_epoch=0, Latest_handled_binlog_epoch=0, Latest_applied_binlog_epoch=015 Zeilen im Satz (0,00 Sek.)

Verlassen Sie nun die MySQL-Shell mit dem folgenden Befehl:

mysql> beenden

Jetzt führen wir einen weiteren Test durch, um zu bestätigen, dass der Cluster ordnungsgemäß funktioniert.

Verbinden Sie die Cluster-Verwaltungskonsole mit dem folgenden Befehl:

ndb_mgm

Sie sollten die folgende Ausgabe sehen:

-- NDB-Cluster -- Verwaltungsclient --ndb_mgm>

Führen Sie nun den folgenden Befehl aus, um alle Daten-Ndoes zu überprüfen:

ndb_mgm>ZEIGEN

Sie sollten die folgende Ausgabe erhalten:

Mit Verwaltungsserver verbunden unter:104.245.33.61:1186Clusterkonfiguration---------------------[ndbd(NDB)] 2 Knoten-ID=2 @104.245.32.195 (mysql-8.0.24 ndb-8.0.24, Knotengruppe:0, *)id=3 @69.87.218.169 (mysql-8.0.24 ndb-8.0.24, Knotengruppe:0)[ndb_mgmd(MGM) ] 1 Knoten-ID=1 @104.245.33.61 (mysql-8.0.24 ndb-8.0.24)[mysqld(API)] 1 Knoten-ID=4 @104.245.33.61 (mysql-8.0.24 ndb -8.0.24)

Führen Sie den folgenden Befehl aus, um den Status des ersten Datenknotens zu überprüfen:

ndb_mgm> 2 STATUS

Sie sollten die folgende Ausgabe sehen:

Knoten 2:gestartet (mysql-8.0.24 ndb-8.0.24)

Führen Sie den folgenden Befehl aus, um den Status des zweiten Datenknotens zu überprüfen:

ndb_mgm> 3 STATUS

Sie sollten die folgende Ausgabe sehen:

Knoten 3:gestartet (mysql-8.0.24 ndb-8.0.24)

Schlussfolgerung

Herzliche Glückwünsche! Sie haben erfolgreich einen MySQL-Cluster mit drei Knoten auf einem Debian 10-Server installiert und eingerichtet. Sie können dieses Setup jetzt in der Produktionsumgebung verwenden, um Skalierbarkeit und Verfügbarkeit zu erreichen.


Debian
  1. Wie man vsftpd unter Debian einrichtet

  2. So installieren Sie Percona XtraDB Cluster für MySQL unter Debian 8

  3. So installieren Sie osquery unter Debian 10

  4. So richten Sie den Rsyslog-Server unter Debian 11 ein

  5. So installieren Sie MySQL unter Debian 11

So installieren Sie MySQL 8 auf Debian 10

So installieren Sie Node.js unter Debian 8

So installieren Sie Node.js unter Debian 9

So installieren Sie Node.js unter Debian 10

So installieren Sie Node.js unter Debian 11

So installieren Sie Node.js unter Debian