GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat a nakonfigurovat cluster MySQL na CentOS 7

MySQL Cluster je navržen tak, aby poskytoval databázi kompatibilní s MySQL s vysokou dostupností a nízkou latencí. Technologie MySQL Cluster je implementována prostřednictvím úložných enginů NDB (Network DataBase) a NDBCLUSTER a poskytuje klastrování a automatické sharding pro databázové systémy MySQL. V architektuře shared-nothing má každý z uzlů svou vlastní paměť a disk, použití sdíleného úložiště, jako je NFS, SAN se nedoporučuje a nepodporuje.

Abychom mohli implementovat MySQL Cluster, musíme nainstalovat tři typy uzlů. Každý typ uzlu se nainstaluje na svůj vlastní server. Součásti jsou:

1. Uzel správy – NDB_MGMD/MGM
    Server pro správu klastru se používá ke správě druhého uzlu klastru. Můžeme vytvářet a konfigurovat nové uzly, restartovat, mazat nebo zálohovat uzly v clusteru z uzlu správy.

2. Datové uzly – NDBD/NDB
    Toto je vrstva, kde probíhá proces synchronizace a replikace dat mezi uzly.

3. SQL Nodes – MySQLD/API
    Servery rozhraní, které aplikace používají k připojení k databázovému clusteru.

V tomto tutoriálu vás provedu instalací a konfigurací MySQL Clusteru s centOS 7. Nakonfigurujeme management uzel, dva datové uzly a dva SQL uzly.

Předpoklady

  • Operační systém je CentOS 7 – 64bit.
  • 5 serverů nebo virtuálních počítačů CentOS. Použiji názvy hostitelů a IP adresy, jak je uvedeno níže:
    • Uzel správy
      db1 =192.168.1.120
    • Datové uzly
      db2 =192 168.1.121
      db3 =192 168.1.122
    • uzly SQL
      db4 =192.168.1.123
      db5 =192.168.1.124

Krok 1 – Nastavení uzlu správy

Prvním krokem je vytvoření "Management Node" s CentOS 7 db1 a IP 192.168.1.120 . Ujistěte se, že jste přihlášeni k serveru db1 jako uživatel root.

A. Stáhněte si software MySQL Cluster

Stáhnu si to ze stránek MySQL pomocí wget. Zde používám „Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit), RPM Bundle “, který je kompatibilní s CentOS 7. Poté rozbalte soubor tar.

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. Instalovat a odebírat balíčky

Před instalací balíčku rpm pro MySQL Cluster je třeba nainstalovat perl-Data-Dumper který vyžaduje server MySQL-Cluster. A musíte odstranit mariadb-libs než budeme moci nainstalovat MySQL Cluster.

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

C. Nainstalujte MySQL Cluster

Nainstalujte balíček MySQL Cluster pomocí těchto příkazů rpm:

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

Ujistěte se, že nedošlo k chybě.

D. Konfigurace clusteru MySQL

Vytvořte nový adresář pro konfigurační soubory. Použiji adresář "/var/lib/mysql-cluster".

mkdir -p /var/lib/mysql-cluster

Poté vytvořte nový konfigurační soubor pro správu clusteru s názvem „config.ini " v adresáři mysql-cluster.

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

Vložte konfiguraci níže:

[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

Uložte soubor a ukončete.

E. Spusťte Management Node

Dále spusťte řídicí uzel pomocí příkazu níže:

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

Výsledek by měl být podobný tomuto:

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

Management uzel je spuštěn, nyní můžete pomocí příkazu "ndb_mgm" monitorovat uzel:

ndb_mgm
show

Můžete vidět, že management uzel byl spuštěn s:mysql-6.6 a ndb-7.4.

Krok 2 – Nastavení datových uzlů clusteru MySQL

Pro datové uzly použijeme 2 servery CentOS.

  1. db2 =192.168.1.121
  2. db3 =192.168.1.122

A. Přihlaste se jako uživatel root a stáhněte si software MySQL Cluster

Přihlaste se k serveru db2 pomocí ssh:

ssh [email protected]

Poté si stáhněte balíček MySQL Cluster a rozbalte jej:

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. Instalovat a odebírat balíčky

Nainstalujte perl-Data-Dumper a odstraňte mariadb-libs:

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

C. Nainstalujte MySQL Cluster

Nyní můžeme nainstalovat balíčky MySQL Cluster pro datové uzly pomocí těchto příkazů rpm:

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

Ujistěte se, že nedošlo k chybě.

D. Konfigurace datového uzlu

Vytvořte nový konfigurační soubor v adresáři /etc pomocí editoru vi:

vi /etc/my.cnf

Vložte konfiguraci níže:

[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

Uložte soubor a ukončete.

Poté vytvořte nový adresář pro data databáze, který jsme definovali v konfiguračním souboru management node "config.ini".

mkdir -p /var/lib/mysql-cluster

Nyní spusťte datový uzel/ndbd:

ndbd

výsledky:

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

Datový uzel db2 připojený k uzlu správy ip 192.168.1.120.

E. Opakujte kroky 2.A – 2.D na serveru db3.

Protože máme 2 datové uzly, zopakujte prosím kroky 2.A – 2.D na našem druhém datovém uzlu.

Krok 3 – Nastavení uzlu SQL

Tento krok obsahuje nastavení pro uzel SQL, který poskytuje aplikaci přístup k databázi. Pro uzly SQL používáme 2 servery CentOS:

  1. db4 =192.168.1.123
  2. db5 =192.168.1.124

A. Přihlaste se a stáhněte si MySQL Cluster

Přihlaste se k serveru db4 jako uživatel root:

ssh [email protected]

A stáhněte si balíček MySQL Cluster:

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. Instalovat a odebírat balíčky

Nainstalujte perl-Data-Dumper a odstraňte mariadb-libs, které jsou v konfliktu s MySQL Clusterem.

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

C. Nainstalujte MySQL Cluster

Nainstalujte server MySQL Cluster, klienta a sdílený balíček pomocí příkazů rpm níže:

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. Nakonfigurujte uzel SQL

Vytvořte nový soubor my.cnf v adresáři /etc:

vi /etc/my.cnf

A vložte konfiguraci níže:

[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

Uložte soubor a ukončete editor.

Spusťte uzel SQL spuštěním serveru MySQL:

service mysql start

E. Opakujte kroky 3.A – 3.D na serveru db5.

Prosím opakujte kroky 3.A - 3.D na druhém SQL serveru (db5).

Krok 4 – Monitorování clusteru

Abychom viděli stav clusteru, musíme se přihlásit do management node db1.

ssh [email protected]

K zobrazení stavu clusteru můžeme použít příkaz ndb_mgm:

ndb_mgm
ndb_mgm> show

Dalším užitečným příkazem je:

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

Krok 5 – Testování clusteru

Chcete-li provést test na našem novém clusteru MySQL, musíme se přihlásit k serverům SQL Nodes db4 nebo db5.

Přihlaste se k serveru db4:

ssh [email protected]

Změňte výchozí heslo MySQL uložené v „.mysql_secret " soubor v kořenovém adresáři:

cd ~
cat .mysql_secret

toto je můj vzorek:

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

Nyní změňte heslo příkazem níže:

mysql_secure_installation

Zadejte své staré heslo mysql a poté zadejte nové a vše potvrďte stisknutím klávesy Enter.

Pokud je vše hotovo, můžete se přihlásit do prostředí MySQL pomocí svého hesla:

mysql -u root -p

Po přihlášení vytvořte nového uživatele root s hostitelem "@ “, takže budeme mít přístup k MySQL zvenčí.

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

Nahraďte aqwe123 s vaším vlastním bezpečným heslem! Nyní můžete vidět nového uživatele root s hostitelem "@" v seznamu uživatelů MySQL:

select user, host, password from mysql.user;

A udělte novému uživateli root přístup pro čtení a zápis ze vzdáleného uzlu:

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

Nyní zkuste vytvořit novou databázi ze serveru db4 a databázi uvidíte také na db5.

Toto je pouze ukázkový výsledek pro testování replikace dat clusteru.

MySQL Cluster byl úspěšně nastaven na CentOS 7 s 5 serverovými uzly.

Závěr

MySQL Cluster je technologie, která poskytuje vysokou dostupnost a redundanci pro databáze MySQL. Jako úložný modul používá NDB nebo NDBCLUSTER a poskytuje klastrování a automatické sharding pro databáze MySQL. K implementaci clusteru potřebujeme 3 komponenty:Management Node (MGM), Data Nodes (NDB) a SQL Nodes (API). Každý uzel musí mít vlastní paměť a disk. Nedoporučuje se používat síťové úložiště, jako je NFS. Chcete-li nainstalovat MySQL Cluster na minimální systém CentOS 7, musíme odstranit balíček mariadb-libs, mariadb-libs je v konfliktu s MySQL-Cluster-server a musíte nainstalovat balíček perl-Data-Dumper, který MySQL-Cluster potřebuje -server. MySQL Cluster se snadno instaluje a konfiguruje na více serverech CentOS.


Cent OS
  1. Jak nainstalovat a nakonfigurovat Nginx na CentOS 7

  2. Jak nainstalovat Node.js a NPM na CentOS 7

  3. Jak nainstalovat Node.js a NPM na CentOS

  1. Jak nainstalovat a nakonfigurovat Redis na CentOS 7

  2. Jak nainstalovat a nakonfigurovat GitLab na CentOS 7

  3. Jak nainstalovat a nakonfigurovat Zabbix na CentOS 7

  1. Jak nainstalovat a nakonfigurovat Redmine na CentOS 7

  2. Jak nainstalovat Node.js a npm na CentOS 8

  3. Jak nainstalovat a nakonfigurovat Redis na CentOS 8