GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare e configurare MySQL Cluster su CentOS 7

MySQL Cluster è progettato per fornire un database compatibile con MySQL con elevata disponibilità e bassa latenza. La tecnologia MySQL Cluster è implementata attraverso i motori di archiviazione NDB (Network DataBase) e NDBCLUSTER e fornisce clustering senza condivisione e partizionamento automatico per i sistemi di database MySQL. Nell'architettura shared-nothing, ciascuno dei nodi ha la propria memoria e disco, l'uso di storage condiviso come NFS e SAN non è consigliato e supportato.

Per implementare un cluster MySQL, dobbiamo installare tre tipi di nodi. Ogni tipo di nodo verrà installato sul proprio server. I componenti sono:

1. Nodo di gestione - NDB_MGMD/MGM
    Il server di gestione del cluster viene utilizzato per gestire l'altro nodo del cluster. Possiamo creare e configurare nuovi nodi, riavviare, eliminare o eseguire il backup dei nodi sul cluster dal nodo di gestione.

2. Nodi di dati - NDBD/NDB
    Questo è il livello in cui avviene il processo di sincronizzazione e replica dei dati tra i nodi.

3. Nodi SQL - MySQLD/API
    I server di interfaccia utilizzati dalle applicazioni per connettersi al cluster di database.

In questo tutorial, ti guiderò attraverso l'installazione e la configurazione di un cluster MySQL con centOS 7. Configureremo il nodo di gestione, due nodi di dati e due nodi SQL.

Prerequisiti

  • Il sistema operativo è CentOS 7 - 64 bit.
  • 5 server CentOS o macchine virtuali. Userò i nomi host e gli indirizzi IP come mostrato di seguito:
    • Nodo di gestione
      db1 =192.168.1.120
    • Nodi di dati
      db2 =192.168.1.121
      db3 =192.168.1.122
    • Nodi SQL
      db4 =192.168.1.123
      db5 =192.168.1.124

Passaggio 1 - Nodo di gestione dell'installazione

Il primo passo è creare il "Nodo di gestione" con CentOS 7 db1 e IP 192.168.1.120 . Assicurati di aver effettuato l'accesso al server db1 come utente root.

A. Scarica il software MySQL Cluster

Lo scaricherò dal sito MySQL con wget. Sto usando "Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit), RPM Bundle" qui che è compatibile con CentOS 7. Quindi estrai il file 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. Installa e rimuovi pacchetti

Prima di installare il pacchetto rpm per MySQL Cluster, è necessario installare perl-Data-Dumper che è richiesto dal server MySQL-Cluster. E devi rimuovere mariadb-libs prima di poter installare MySQL Cluster.

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

C. Installa MySQL Cluster

Installa il pacchetto MySQL Cluster con questi comandi 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

Assicurati che non ci siano errori.

D. Configura MySQL Cluster

Creare una nuova directory per i file di configurazione. Userò la directory "/var/lib/mysql-cluster".

mkdir -p /var/lib/mysql-cluster

Quindi creare un nuovo file di configurazione per la gestione del cluster denominato "config.ini " nella directory mysql-cluster.

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

Incolla la configurazione di seguito:

[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

Salva il file ed esci.

E. Avvia il nodo di gestione

Quindi avvia il nodo di gestione con il comando seguente:

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

Il risultato dovrebbe essere simile a questo:

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

Il nodo di gestione è avviato, ora puoi usare il comando "ndb_mgm" per monitorare il nodo:

ndb_mgm
show

Puoi vedere che il nodo di gestione è stato avviato con:mysql-6.6 e ndb-7.4.

Passaggio 2:configurazione dei nodi di dati del cluster MySQL

Utilizzeremo 2 server CentOS per i nodi dati.

  1. db2 =192.168.1.121
  2. db3 =192.168.1.122

A. Accedi come utente root e scarica il software MySQL Cluster

Accedi al server db2 con ssh:

ssh [email protected]

Quindi scarica il pacchetto MySQL Cluster ed estrailo:

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. Installa e rimuovi pacchetti

Installa perl-Data-Dumper e rimuovi mariadb-libs:

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

C. Installa MySQL Cluster

Ora possiamo installare i pacchetti MySQL Cluster per i Data Node con questi comandi 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

Assicurati che non ci siano errori.

D. Configura il nodo dati

Crea un nuovo file di configurazione nella directory /etc con l'editor vi:

vi /etc/my.cnf

Incolla la configurazione di seguito:

[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

Salva il file ed esci.

Quindi creare la nuova directory per i dati del database che abbiamo definito nel file di configurazione del nodo di gestione "config.ini".

mkdir -p /var/lib/mysql-cluster

Ora avvia il nodo dati/ndbd:

ndbd

risultati:

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

Data Node db2 connesso al nodo di gestione ip 192.168.1.120.

E. Ripeti i passaggi 2.A - 2.D sul server db3.

Poiché abbiamo 2 nodi di dati, ripetere i passaggi 2.A - 2.D sul nostro secondo nodo di dati.

Passaggio 3 - Configurazione del nodo SQL

Questo passaggio contiene la configurazione per il nodo SQL che fornisce l'accesso dell'applicazione al database. Utilizziamo 2 server CentOS per i nodi SQL:

  1. db4 =192.168.1.123
  2. db5 =192.168.1.124

A. Accedi e scarica MySQL Cluster

Accedi al server db4 come utente root:

ssh [email protected]

E scarica il pacchetto 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. Installa e rimuovi pacchetti

Installa perl-Data-Dumper e rimuovi le mariadb-libs che sono in conflitto con MySQL Cluster.

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

C. Installa MySQL Cluster

Installa il server MySQL Cluster, il client e il pacchetto condiviso con i comandi rpm seguenti:

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. Configura il nodo SQL

Crea un nuovo file my.cnf nella directory /etc:

vi /etc/my.cnf

E incolla la configurazione di seguito:

[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

Salva il file ed esci dall'editor.

Avvia il nodo SQL avviando il server MySQL:

service mysql start

E. Ripeti i passaggi 3.A - 3.D sul server db5.

Si prega di ripetere i passaggi 3.A - 3.D sul secondo server SQL (db5).

Fase 4:monitora il cluster

Per vedere lo stato del cluster, dobbiamo accedere al nodo di gestione db1.

ssh [email protected]

Possiamo usare il comando ndb_mgm per vedere lo stato del cluster:

ndb_mgm
ndb_mgm> show

Un altro comando utile è:

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

Fase 5:test del cluster

Per eseguire un test sul nostro nuovo MySQL Cluster, dobbiamo accedere ai server SQL Nodes db4 o db5.

Accedi al server db4:

ssh [email protected]

Modifica la password MySQL predefinita memorizzata in ".mysql_secret " file nella directory principale:

cd ~
cat .mysql_secret

questo è il mio campione:

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

Ora cambia la password con il comando seguente:

mysql_secure_installation

Digita la tua vecchia password mysql e quindi digita quella nuova, premi invio per confermare tutto.

Se tutto è fatto, puoi accedere alla shell MySQL con la tua password:

mysql -u root -p

Dopo aver effettuato l'accesso, crea un nuovo utente root con l'host "@ ", così potremo accedere a MySQL dall'esterno.

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

Sostituisci aqwe123 con la tua password sicura! Ora puoi vedere il nuovo utente root con host "@" nell'elenco utenti MySQL:

select user, host, password from mysql.user;

E concedi al nuovo utente root l'accesso in lettura e scrittura dal nodo remoto:

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

Ora prova a creare un nuovo database dal server db4 e vedrai il database anche su db5.

Questo è solo un risultato di esempio per testare la replica dei dati del cluster.

Il cluster MySQL è stato configurato correttamente su CentOS 7 con 5 nodi server.

Conclusione

MySQL Cluster è una tecnologia che fornisce alta disponibilità e ridondanza per i database MySQL. Utilizza NDB o NDBCLUSTER come motore di archiviazione e fornisce clustering e partizionamento automatico non condivisi per i database MySQL. Per implementare il cluster, abbiamo bisogno di 3 componenti:Management Node (MGM), Data Nodes (NDB) e SQL Nodes (API). Ciascun nodo deve avere la propria memoria e disco. Non è consigliabile utilizzare l'archiviazione di rete come NFS. Per installare MySQL Cluster su un sistema minimo CentOS 7, dobbiamo rimuovere il pacchetto mariadb-libs, mariadb-libs è in conflitto con MySQL-Cluster-server e devi installare il pacchetto perl-Data-Dumper, è necessario per MySQL-Cluster -server. Un cluster MySQL è facile da installare e configurare su più server CentOS.


Cent OS
  1. Come installare e configurare Nginx su CentOS 7

  2. Come installare Node.js e NPM su CentOS 7

  3. Come installare e configurare Redis su CentOS 7

  4. Come installare e configurare GitLab su CentOS 7

  5. Come installare Node.js e NPM su CentOS

Come installare e configurare un cluster Docker Swarm su CentOS 8

Come installare e configurare Nagios 4.0.7 su CentOS 7

Come installare e configurare ISPConfig CP su CentOS 7

Come installare e configurare ownCloud su CentOS 7

Come installare e configurare Samba su CentOS 8

Come installare e configurare Fail2ban su CentOS 8