GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare un cluster MySQL su Ubuntu 16.04

MySQL Cluster è una tecnologia per fornire un'elevata disponibilità per i database MySQL. Utilizza NDB (Network DataBase) o NDBCLUSTER come motore di archiviazione del database. MySQL Cluster è progettato come architettura ACID multi-master senza un singolo punto di errore, utilizza lo sharding automatico (partizionamento) per scalare i processi di lettura e scrittura.

Per implementare un cluster MySQL, abbiamo bisogno di 3 diversi tipi di nodi:

  • Nodo di gestione (ndb_mgmd )
    • Utilizzato per il monitoraggio e la configurazione del cluster.
  • Nodo dati (ndbd )
    • Questi nodi vengono utilizzati per archiviare i dati, forniscono lo sharding automatico e possono gestire la replica.
  • Nodo SQL (mysqld )
    • Interfacce di MySQL Server per la connessione a tutti i nodi.

In questo tutorial, ti mostrerò come installare un 'MySQL Cluster' su Ubuntu 16.04 LTS (Xenial Xerus).

Prerequisiti

  • 4 nodi con server Ubuntu 16.04
  1. 192.168.1.11    nodo di gestione
  2. 192.168.1.12    data-node1
  3. 192.168.1.13    data-node2
  4. 192.168.1.14    sql-node
  • Privilegi di root sui nodi.

Passaggio 1:installazione e configurazione del nodo di gestione

In questo passaggio installeremo il nodo di gestione per il nostro cluster con indirizzo IP 192.168.1.11. Installiamo il software del cluster MySQL e lo configuriamo come nodo di gestione per il cluster.

Accedi al nodo di gestione con ssh:

ssh [email protected]
TYPE YOUR PASSWORD

A. Installa MySQL Cluster Management Node

Apri qui il sito del cluster MySQL e scegli l'opzione 'Linux-generic ' e scarica il pacchetto a 64 bit facendo clic su 'Download pulsante '.

Scarica il pacchetto del cluster MySQL con wget ed estrailo.

wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz

Rinomina la directory in mysql:

mv mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64/ mysql/

Vai alla directory mysql e copia i 2 file binari per il comando di gestione del cluster 'ndb_mgmd e ndb_mgm ' nella directory '/usr/local/bin/', quindi rendili eseguibili con il comando chmod.

cd ~/mysql/
cp bin/ndb_mgm* /usr/local/bin/
chmod +x /usr/local/bin/ndb_mgm*

B. Configura MySQL Cluster Management Node

Configura il nodo di gestione creando una nuova directory 'mysql-cluster' per i file di configurazione nella directory '/var/lib/'.

Crea una directory 'mysql-cluster' e crea una nuova configurazione 'config.ini' nella directory:

mkdir -p /var/lib/mysql-cluster/
vim /var/lib/mysql-cluster/config.ini

Incolla la configurazione di seguito:

[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M

[mysqld default]

[ndb_mgmd default]

[tcp default]

# Cluster Control / Management node
[ndb_mgmd]
hostname=192.168.1.11

# Data Node 1
[ndbd]
hostname=192.168.1.12
DataDir= /var/lib/mysql-cluster

# Data Node 1
[ndbd]
HostName=192.168.1.13
DataDir=/var/lib/mysql-cluster

# SQL Node
[mysqld]
hostname=192.168.1.14

# If you to add new SQL Node
[mysqld]

Modifica l'indirizzo IP di ndb_mgmd per la gestione, ndbd per il nodo dati e mysqld per il nodo sql in modo che corrisponda alla tua configurazione.

Salva il file ed esci.

Quindi, avvia il processo del nodo di gestione con il comando seguente:

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

Fai in modo che venga avviato all'avvio aggiungendo il comando a '/etc/rc.local ' file:

echo 'ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/' >> /etc/rc.local

Se vedi i risultati:

MySQL Cluster Management Server mysql-5.6.31 ndb-7.4.12

Quindi il processo del nodo di gestione è in esecuzione.

Controlla il nodo di gestione con un altro comando:

# Checking port 1186 used by ndb_mgmd
netstat -plntu

# Checking the management node is ready
ndb_mgm
show

Passaggio 2:installazione e configurazione del nodo dati

In questo passaggio, installeremo il software del cluster MySQL e lo configureremo come nodo dati. Useremo 2 server Ubuntu 16.04 come nodi di dati:data-node1 con indirizzo IP 192.168.1.12 e data-node2 con indirizzo IP 192.168.1.13.

Accedi al server data-node1 con ssh:

ssh [email protected]

A. Installa MySQL Cluster sul nodo dati

Prima di installare il software del cluster MySQL, è necessario installare un nuovo pacchetto 'libaio1 ' e crea un nuovo utente e gruppo mysql . Esegui il comando seguente come root per questo:

apt-get install libaio1
groupadd mysql
useradd -g mysql mysql

Ora scarica il pacchetto del cluster MySQL 'Linux-Generic ', estrai e rinomina la directory in mysql.

wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64/ mysql/

Sposta la directory 'mysql' in '/usr/local /' e vai in quella directory.

mv mysql /usr/local/
cd /usr/local/mysql/

Eseguire lo script per la creazione dei database di sistema:

./scripts/mysql_install_db --user=mysql

Se non ci sono errori, copia il file del servizio mysql in '/etc/init.d ' e aggiungi lo script di avvio di mysql da eseguire all'avvio.

cp support-files/mysql.server /etc/init.d/mysql
systemctl enable mysql

Quindi, sposta tutti i comandi binari mysql in '/usr/local/bin ' e crea un nuovo collegamento simbolico.

mv bin/* /usr/local/bin/
rm -rf bin/
ln -s /usr/local/bin /usr/local/mysql/

Cambia il proprietario della directory mysql in utente root e mysql di gruppo e cambia la directory dei dati in mysql come proprietario.

chown -R root:mysql .
chown -R mysql data

B. Configura MySQL Cluster Data Node

Crea un nuovo file di configurazione MySQL 'my.cnf ' con vim:

vim /etc/my.cnf

Incolla la configurazione di seguito:

# MySQL Config
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql

# Run ndb storage engine
ndbcluster
# IP address management node
ndb-connectstring=192.168.1.11

[mysql_cluster]
# IP address management node
ndb-connectstring=192.168.1.11

# MySQL Pid and Log
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

Salva ed esci.

Crea una nuova directory per i nodi di dati e cambia la proprietà all'utente mysql.

mkdir -p /var/lib/mysql-cluster/
chown -R mysql /var/lib/mysql-cluster

C. Avvia MySQL sul nodo dati

Avvia il servizio mysql con il comando seguente:

ndbd --initial
systemctl start mysql

Assicurati che non ci siano errori e che i risultati siano sotto (data-node2):

MySQL sul nodo dati viene avviato. Ora puoi configurare la password MySQL con il comando:

mysql_secure_installation

oppure accedi alla shell MySQL.

mysql -u root -p

NOTA :
Ripeti questo passaggio su 'data-node2 ' indirizzo IP del server 192.168.1.13.

Passaggio 3:installazione e configurazione del nodo SQL

In questo passaggio, installeremo il software MySQL Cluster e lo configureremo come nodo SQL. Questo nodo viene utilizzato per accedere ai database sui nodi di dati. Il processo di installazione è lo stesso del nodo dati, ma non è necessario eseguire il servizio ndbd nel nodo SQL.

Accedi al nodo SQL con ssh:

ssh [email protected]

A. Installa MySQL Cluster sul nodo SQL

Installa il pacchetto libaio1 e crea un nuovo utente e gruppo mysql:

apt-get install libaio1
groupadd mysql
useradd -g mysql mysql

Scarica il pacchetto del cluster mysql dal sito, estrailo e rinominalo:

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64/ mysql/

Sposta la directory mysql:

mv mysql /usr/local/
cd /usr/local/mysql/

Esegui mysql_install_db sceneggiatura:

./scripts/mysql_install_db --user=mysql

Copia il file del servizio e aggiungilo per essere avviato all'avvio:

cp support-files/mysql.server /etc/init.d/mysql
systemctl enable mysql

Sposta tutti i binari di MySQL in '/usr/local/bin ' directory:

mv bin/* /usr/local/bin/
rm -rf bin/
ln -s /usr/local/bin /usr/local/mysql/

Cambia il proprietario di tutti i file e la directory:

chown -R root:mysql .
chown -R mysql data

B. Configura il nodo SQL del cluster MySQL

Crea un nuovo my.cnf file di configurazione con vim:

vim /etc/my.cnf

Incolla la configurazione di seguito:

# MySQL Config
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql

# Run ndb storage engine
ndbcluster
# IP address management node
ndb-connectstring=192.168.1.11

[mysql_cluster]
# IP address management node
ndb-connectstring=192.168.1.11

# MySQL Pid and Log
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

Salva ed esci.

C. Avvia il nodo SQL

Avvia il nodo SQL avviando il servizio mysql con il comando systemctl:

systemctl start mysql

Il nodo SQL è avviato, ora puoi configurare la password per MySQL.

mysql_secure_installation

Fase 4 - Test

Test per creare un nuovo database dal nodo SQL.

mysql -u root -p
TYPE PASSWORD


create database nanana;

Verifica che il database venga replicato sui server del nodo dati.
E quando un nodo è disattivato, un altro nodo gestirà la connessione dal nodo SQL.

mysql -u root -p
TYPE PASSWORD


show databases;

Verifica dello stato del cluster dal nodo di gestione:

ndb_mgm
show

Passaggio 5 - Suggerimenti aggiuntivi

Esecuzione di un riavvio e arresto sicuro del cluster.

Vai al nodo di gestione del cluster e digita il comando seguente per arrestare il cluster:

ndb_mgm
shutdown

Il comando arresterà tutti i servizi ndb sui nodi di dati.

Se desideri riavviare il cluster, puoi eseguire il comando seguente sul nodo di gestione:

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

Ed esegui il comando seguente su tutti i nodi di dati:

ndbd
systemctl start mysql

Quindi avvia il servizio mysql sui nodi SQL:

systemctl start mysql

Ora il tuo MySQL Cluster è di nuovo in esecuzione.


Ubuntu
  1. Come installare MySQL 8.0 in Ubuntu 18.04

  2. Come installare MySQL su Ubuntu 20.04

  3. Come installare MySQL su Ubuntu 18.04

  4. Come installare MySQL 8.0 su Ubuntu 18.04

  5. Come installare Node.js su Ubuntu 16.04

Come installare Drupal su Ubuntu 14.04

Come installare Node.js su Ubuntu 14.04

Come installare Node.js su Ubuntu 16.04

Come installare Node.js su Ubuntu 19.04

Come installare Node.js su Ubuntu 14.04

Come installare MySQL su Ubuntu 22.04