MySQL je bezplatný systém správy relačních databází s otevřeným zdrojovým kódem. Používá se k ukládání dat pro různé účely, včetně aplikací pro ukládání dat, elektronický obchod a protokolování. MySQL Cluster je technologie, která poskytuje škálovatelnost a dostupnost za nízkou cenu.
V tomto kurzu použijeme jeden hlavní uzel pro uložení konfigurace clusteru a dva datové uzly pro uložení dat clusteru. IP adresa každého uzlu je uvedena níže:
- Hlavní nebo manažerský uzel – 104.245.33.61
- Datový uzel1 – 104.245.32.195
- Datový uzel2 – 69.87.218.169
Předpoklady
- Tři servery se systémem Debian 10, jeden pro manažerský uzel a ostatní jsou datové uzly.
- Na každém serveru je nastaveno heslo uživatele root.
Začínáme
Nejprve budete muset aktualizovat všechny servery na nejnovější verzi. Vše můžete aktualizovat pomocí následujícího příkazu:
apt-get update -y
Jakmile jsou všechny servery aktualizovány, můžete přejít k dalšímu kroku.
Instalace a nastavení MySQL Cluster Manager
Nejprve budete muset nainstalovat balíček správy clusteru MySQL na hlavní uzel. Ve výchozím nastavení není tento balíček součástí výchozího úložiště Debian 10. Budete si jej tedy muset stáhnout z oficiálních stránek MySQL.
Můžete si jej stáhnout pomocí následujícího příkazu:
wget https://cdn.mysql.com//Downloads/MySQL-Cluster-8.0/mysql-cluster-community-management-server_8.0.24-1debian10_amd64.deb
Po stažení souboru deb jej nainstalujte pomocí následujícího příkazu:
dpkg -i mysql-cluster-community-management-server_8.0.24-1debian10_amd64.deb
Po dokončení instalace vytvořte adresář pro uložení konfigurace clusteru pomocí následujícího příkazu:
mkdir /var/lib/mysql-cluster
Dále vytvořte nový konfigurační soubor pomocí následujícího příkazu:
nano /var/lib/mysql-cluster/config.ini
Přidejte následující řádky:
[ndbd default]NoOfReplicas=2 # Počet replik[ndb_mgmd]# Možnosti procesu správy:hostname=104.245.33.61 #IP databáze MySQL Cluster Manager=/var/lib/mysql-cluster[ndbd]hostname=104.245. 32.195 #IP prvního datového nodeNodeId=2 # ID uzlu pro tato data nodedatadir=/usr/local/mysql/data # Vzdálený adresář pro datové soubory[ndbd]hostname=69.87.218.169 #IP druhého datového nodeNodeId=3 # ID uzlu pro tato data nodedatadir=/usr/local/mysql/data # Vzdálený adresář pro datové soubory[mysqld]# možnosti uzlu SQL:hostname=104.245.33.61 #IP Správce clusteru MySQL
Po dokončení uložte a zavřete soubor, poté spusťte správce clusteru pomocí následujícího příkazu:
ndb_mgmd -f /var/lib/mysql-cluster/config.ini
Měli byste získat následující výstup:
MySQL Cluster Management Server mysql-8.0.24 ndb-8.0.242021-05-10 08:23:05 [MgmtSrvr] INFO -- Výchozí konfigurační adresář '/usr/mysql-cluster' neexistuje. Pokus o vytvoření...2021-05-10 08:23:05 [MgmtSrvr] INFO -- úspěšně vytvořen konfigurační adresář
Nyní ukončete běžící server pomocí následujícího příkazu:
pkill -f ndb_mgmd
Dále vytvořte soubor služby systemd pro MySQL Cluster Manager pro správu služby:
nano /etc/systemd/system/ndb_mgmd.service
Přidejte následující řádky:
[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
Uložte a zavřete soubor a poté znovu načtěte démona systemd pomocí následujícího příkazu:
systemctl daemon-reload
Dále spusťte Správce klastrů a povolte jeho spuštění při restartu systému pomocí následujícího příkazu:
systemctl start ndb_mgmd
systemctl povolení ndb_mgmd
Nyní můžete zkontrolovat stav služby pomocí následujícího příkazu:
stav systemctl ndb_mgmd
Měli byste získat následující výstup:
? ndb_mgmd.service - MySQL NDB Cluster Management Server Načten:načten (/etc/systemd/system/ndb_mgmd.service; zakázán; přednastaveno dodavatelem:povoleno) Aktivní:aktivní (běží) od Po 2021-05-10 08:23:53 UTC; před 6 s Proces:984 ExecStart=/usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini (kód=ukončeno, stav=0/ÚSPĚCH) Hlavní PID:985 (ndb_mgmd) Úkoly:12 (limit :2359) Paměť:6,5M 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 ]:Spouštění serveru MySQL NDB Cluster Management Server...10. května 08:23:53 master ndb_mgmd[984]:Server pro správu clusteru MySQL mysql-8.0.24 ndb-8.0.24 10. května 08:23:53 master systemd[1]:Spuštěn MySQL NDB Cluster Management Server.
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Instalace a konfigurace datových uzlů
Dále vytvoříme balíček datových uzlů na jiných serverech a nakonfigurujeme jej pro komunikaci s MySQL Cluster Manager.
Nejprve nainstalujte požadované závislosti na obou datových uzlech pomocí následujícího příkazu:
apt-get install libclass-methodmaker-perl -y
Jakmile jsou všechny závislosti nainstalovány, stáhněte si nejnovější verzi deb souboru MySQL Data Nodes pomocí následujícího příkazu:
wget https://cdn.mysql.com//Downloads/MySQL-Cluster-8.0/mysql-cluster-community-data-node_8.0.24-1debian10_amd64.deb
Po dokončení stahování nainstalujte stažený soubor pomocí následujícího příkazu:
dpkg -i mysql-cluster-community-data-node_8.0.24-1debian10_amd64.deb
Datové uzly standardně ukládají všechny konfigurace do souboru /etc/my.cnf.
Vytvořte tedy nový soubor /etc/my.cnf na obou datových uzlech pomocí následujícího příkazu:
nano /etc/my.cnf
Přidejte IP clusteru, jak je znázorněno níže:
[mysql_cluster]# Možnosti pro procesy NDB clusteru:ndb-connectstring=104.245.33.61 #IP Správce clusteru MySQL
Uložte a zavřete soubor a poté vytvořte datový adresář na obou datových uzlech:
mkdir -p /usr/local/mysql/data
Nyní spusťte datové uzly následujícím příkazem:
ndbd
Měli byste získat následující výstup:
2021-05-10 08:27:13 [ndbd] INFO -- Angel připojen k '104.245.33.61:1186'2021-05-10 08:27:13 [ndbd] INFO -- Angel přidělený nodeid:2
Dále ukončete běžící proces ndbd následujícím příkazem:
pkill -f ndbd
Dále vytvořte soubor služby systemd pro ndbd na obou datových uzlech pomocí následujícího příkazu:
nano /etc/systemd/system/ndbd.service
Přidejte následující řádky:
[Unit]Description=Datový uzel MySQL NDB DaemonAfter=network.target auditd.service[Service]Type=forkingExecStart=/usr/sbin/ndbdExecReload=/bin/kill -HUP $MAINPIDKillMode=processRestart=při selhání[Instalovat ]WantedBy=multi-user.target
Uložte a zavřete soubor a poté znovu načtěte démona systemd pomocí následujícího příkazu:
systemctl daemon-reload
Dále spusťte službu ndbd a spusťte ji při restartu systému pomocí následujícího příkazu:
systemctl spustit ndbd
systemctl povolit ndbd
Stav služby ndbd můžete také zkontrolovat pomocí následujícího příkazu:
stav systemctl ndbd
Měli byste získat následující výstup:
? ndbd.service – Daemon datového uzlu MySQL NDB Načteno:načteno (/etc/systemd/system/ndbd.service; zakázáno; přednastaveno dodavatelem:povoleno) Aktivní:aktivní (běží) od Po 2021-05-10 08:28:28 UTC; Před 12 s Proces:740 ExecStart=/usr/sbin/ndbd (kód=ukončeno, stav=0/ÚSPĚCH) Hlavní PID:741 (ndbd) Úkoly:46 (limit:2359) Paměť:827,1M CGroup:/system.slice/ ndbd.service ??741 /usr/sbin/ndbd ??742 /usr/sbin/ndbdMay 10 08:28:28 data1 systemd[1]:Spouštění MySQL NDB Data Node Daemon...May 10 08:28:28 data1 nda :28:28 [ndbd] INFO -- Angel alokované nodeid:2. května 10 08:28:28 data1 systemd[1]:Spuštěn MySQL NDB Data Node Daemon.
Instalace a konfigurace serveru MySQL
Dále si stáhneme a nainstalujeme balíčky MySQL Server a Client na MySQL Cluster Manager Node.
Nejprve si stáhněte nejnovější verzi MySQL Cluster Bundle pomocí následujícího příkazu:
wget https://cdn.mysql.com/Downloads/MySQL-Cluster-8.0/mysql-cluster_8.0.24-1debian10_amd64.deb-bundle.tar
Dále rozbalte stažený soubor v adresáři /opt pomocí následujícího příkazu:
tar -xvf mysql-cluster_8.0.24-1debian10_amd64.deb-bundle.tar -C /opt
Dále změňte adresář na /opt a nainstalujte požadované závislosti pomocí následujícího příkazu:
cd /opt
apt-get install libaio1 libmecab2 libnuma1 psmisc -y
Dále nainstalujte soubor MySQL Common deb pomocí následujícího příkazu:
dpkg -i mysql-common*
Dále nainstalujte balíčky klienta MySQL pomocí následujícího příkazu:
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_8.0.0. br />dpkg -i mysql-client_8.0.24-1debian10_amd64.deb
dpkg -i mysql-cluster-community-server*
Pokud se zobrazí jakákoli chyba závislosti, spusťte následující příkaz:
apt-get install -f
Dále nainstalujte balíček serveru MySQL pomocí následujícího příkazu:
dpkg -i mysql-server_8.0.24-1debian10_amd64.deb
Během instalace budete vyzváni k nastavení hesla root MySQL.
Po instalaci serveru MySQL budete muset upravit hlavní konfigurační soubor MySQL a definovat IP clusteru:
nano /etc/mysql/my.cnf
Přidejte následující řádky:
[mysqld]# Možnosti pro mysqld process:ndbcluster # spuštění NDB storage engine[mysql_cluster]# Možnosti pro NDB Cluster process:ndb-connectstring=104.245.33.61 #IP Správce clusteru MySQL
Po dokončení uložte a zavřete soubor. Dále restartujte službu MySQL a povolte její spuštění při restartu systému:
systemctl restart mysql
systemctl povolit mysql
Stav serveru MySQL můžete zkontrolovat pomocí následujícího příkazu:
stav systemctl mysql
Měli byste vidět následující výstup:
? mysql.service – MySQL Cluster Community Server Načteno:načteno (/lib/systemd/system/mysql.service; povoleno; přednastaveno dodavatelem:povoleno) Aktivní:aktivní (běží) od Po 2021-05-10 08:35:04 UTC; Před 7 s Dokumenty:man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Proces:1950 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (kód=ukončeno, stav=0/ÚSPĚCH) Hlavní PID:1985 (mysqld) Stav:"Server je funkční" Úkoly:47 (limit:2359) Paměť:372.0M CGroup:/system.slice/mysql.service ?? 1985 /usr/sbin/mysqldMay 10 08:35:01 master systemd[1]:Spouštění MySQL Cluster Community Server...May 10 08:35:04 master systemd[1]:Spuštěn MySQL Cluster Community Server.
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Test MySQL Cluster
Nyní jsme úspěšně nainstalovali a nakonfigurovali tříuzlový MySQL Cluster. Dále budete muset ověřit, zda funguje nebo ne.
Nejprve se přihlaste do uzlu MySQL Cluster Manager a přihlaste se do MySQL pomocí následujícího příkazu:
mysql -u root -p
Zadejte své kořenové heslo MySQL a poté zkontrolujte informace o clusteru pomocí následujícího příkazu:
mysql> ZOBRAZIT STAV MOTORU NDB \G
Pokud je vše v pořádku, měli byste získat následující výstup:
***************************** 1. řádek **************** ********** Typ:ndbclus Název: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. řádek **************************** Typ :ndbclus Název:NdbTransactionStatus:created=2, free=2, sizeof=392**************************** 3. řádek *** ************************ Typ:ndbclus Název:NdbOperationStatus:created=4, free=4, sizeof=944******** ******************* 4. řádek **************************** Typ :ndbclus Název:NdbIndexScanOperationStatus:created=0, free=0, sizeof=1152*************************** 5. řádek *** ************************ Typ:ndbclus Název:NdbIndexOperationStatus:created=0, free=0, sizeof=952******** ******************* 6. řádek **************************** Typ :ndbclus Jméno:NdbRecAttrStatus:created=0, free=0, sizeof=88**************************** 7. řádek *** *********************** Typ:ndbclus Name:NdbApiSignalStatus:created=16, free=16, sizeof=144**************************** 8. řádek **** *********************** Typ:ndbclus Název:NdbLabelStatus:created=0, free=0, sizeof=200******** ****************** 9. řádek **************************** Typ:ndbclus Name:NdbBranchStatus:created=0, free=0, sizeof=32******************************** 10. řádek **** *********************** Typ:ndbclus Název:NdbSubroutineStatus:created=0, free=0, sizeof=72********* ****************** 11. řádek **************************** Typ:ndbclus Name:NdbCallStatus:created=0, free=0, sizeof=24******************************** 12. řádek **** *********************** Typ:ndbclus Název:NdbBlobStatus:created=0, free=0, sizeof=592********* ****************** 13. řádek *************************** Typ:ndbclus Name:NdbReceiverStatus:created=0, free=0, sizeof=128******************************* 14. řádek **** *********************** Typ:ndbclus Název:NdbLockHandleStatus:created=0, free=0, sizeof=48********* * ***************** 15. řádek **************************** Typ:ndbclus Název:binlogStatus:nejnovější_epoch=897648164875, nejnovější_trans_epoch=820338753551, nejnovější_received_binlog_epoch=0, nejnovější_handled_binlog_epoch=0, nejnovější_applied_binlog_epoch=015 řádků v sadě (0.0.Nyní ukončete prostředí MySQL pomocí následujícího příkazu:
mysql> exitNyní provedeme další test, abychom potvrdili, že cluster funguje správně.
Připojte konzolu pro správu klastru pomocí následujícího příkazu:
ndb_mgmMěli byste vidět následující výstup:
-- Cluster NDB -- Klient pro správu --ndb_mgm>Nyní spusťte následující příkaz a zkontrolujte všechna data ndoes:
ndb_mgm> ZOBRAZITMěli byste získat následující výstup:
Připojeno k Management Serveru na:104.245.33.61:1186 Konfigurace clusteru---------------------[ndbd(NDB)] 2 node(s)id=2 @104.245.32.195 (mysql-8.0.24 ndb-8.0.24, Nodegroup:0, *)id=3 @69.87.218.169 (mysql-8.0.24 ndb-8.0.24, Nodegroup:0)db ] 1 uzel(s)id=1 @104.245.33.61 (mysql-8.0.24 ndb-8.0.24)[mysqld(API)] 1 uzel(s)id=4 @104.245.33.61 (mysql-8.0.24 ndb -8.0.24)Chcete-li zkontrolovat stav prvního datového uzlu, spusťte následující příkaz:
ndb_mgm> 2 STAVMěli byste vidět následující výstup:
Uzel 2:spuštěn (mysql-8.0.24 ndb-8.0.24)Chcete-li zkontrolovat stav druhého datového uzlu, spusťte následující příkaz:
ndb_mgm> 3 STAVMěli byste vidět následující výstup:
Uzel 3:spuštěn (mysql-8.0.24 ndb-8.0.24)Závěr
Gratulujeme! úspěšně jste nainstalovali a nastavili tříuzlový MySQL Cluster na serveru Debian 10. Nyní můžete toto nastavení použít v produkčním prostředí k dosažení škálovatelnosti a dostupnosti.
Jak nainstalovat Apache Tomcat 9 s Nginx Proxy na Debian 10 Jak nainstalovat a nakonfigurovat Tripwire IDS na Debian 10Debian