GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar y configurar MySQL Cluster en CentOS 7

MySQL Cluster está diseñado para proporcionar una base de datos compatible con MySQL con alta disponibilidad y baja latencia. La tecnología MySQL Cluster se implementa a través de los motores de almacenamiento NDB (Network DataBase) y NDBCLUSTER y proporciona agrupación en clústeres sin compartir y fragmentación automática para los sistemas de bases de datos MySQL. En la arquitectura de nada compartido, cada uno de los nodos tiene su propia memoria y disco, no se recomienda ni se admite el uso de almacenamiento compartido como NFS, SAN.

Para implementar un MySQL Cluster, tenemos que instalar tres tipos de nodos. Cada tipo de nodo se instalará en su propio servidor. Los componentes son:

1. Nodo de gestión:NDB_MGMD/MGM
    El servidor de administración de clústeres se utiliza para administrar el otro nodo del clúster. Podemos crear y configurar nuevos nodos, reiniciar, eliminar o respaldar nodos en el clúster desde el nodo de administración.

2. Nodos de datos - NDBD/NDB
    Esta es la capa donde ocurre el proceso de sincronización y replicación de datos entre nodos.

3. Nodos SQL - MySQLD/API
    Los servidores de interfaz que utilizan las aplicaciones para conectarse al clúster de la base de datos.

En este tutorial, lo guiaré a través de la instalación y configuración de MySQL Cluster con centOS 7. Configuraremos el nodo de administración, dos nodos de datos y dos nodos de SQL.

Requisitos

  • El sistema operativo es CentOS 7 - 64 bits.
  • 5 servidores CentOS o máquinas virtuales. Usaré los nombres de host y las direcciones IP como se muestra a continuación:
    • Nodo de gestión
      db1 =192.168.1.120
    • Nodos de datos
      db2 =192.168.1.121
      db3 =192.168.1.122
    • Nodos SQL
      db4 =192.168.1.123
      db5 =192.168.1.124

Paso 1:configurar el nodo de gestión

El primer paso es crear el "Nodo de Gestión" con CentOS 7 db1 y IP 192.168.1.120 . Asegúrese de haber iniciado sesión en el servidor db1 como usuario root.

A. Descargue el software MySQL Cluster

Lo descargaré del sitio de MySQL con wget. Estoy usando "Red Hat Enterprise Linux 7/Oracle Linux 7 (x86, 64-bit), RPM Bundle" que es compatible con CentOS 7. Luego extraiga el archivo 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. Instalar y eliminar paquetes

Antes de instalar el paquete rpm para MySQL Cluster, debe instalar perl-Data-Dumper que es requerido por el servidor MySQL-Cluster. Y debe eliminar mariadb-libs antes de que podamos instalar MySQL Cluster.

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

C. Instale el clúster de MySQL

Instale el paquete MySQL Cluster con estos comandos 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

Asegúrate de que no haya ningún error.

D. Configurar el clúster de MySQL

Cree un nuevo directorio para los archivos de configuración. Usaré el directorio "/var/lib/mysql-cluster".

mkdir -p /var/lib/mysql-cluster

Luego cree un nuevo archivo de configuración para la administración del clúster llamado "config.ini " en el directorio mysql-cluster.

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

Pegue la configuración a continuación:

[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

Guarde el archivo y salga.

E. Inicie el nodo de gestión

A continuación, inicie el nodo de gestión con el siguiente comando:

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

El resultado debería ser similar a esto:

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

Se inicia el nodo de administración, ahora puede usar el comando "ndb_mgm" para monitorear el nodo:

ndb_mgm
show

Puede ver que el nodo de administración se inició con:mysql-6.6 y ndb-7.4.

Paso 2:configurar los nodos de datos de clúster de MySQL

Usaremos 2 servidores CentOS para los nodos de datos.

  1. db2 =192.168.1.121
  2. db3 =192.168.1.122

A. Inicie sesión como usuario root y descargue el software MySQL Cluster

Inicie sesión en el servidor db2 con ssh:

ssh [email protected]

Luego descargue el paquete MySQL Cluster y extráigalo:

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. Instalar y eliminar paquetes

Instale perl-Data-Dumper y elimine mariadb-libs:

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

C. Instale el clúster de MySQL

Ahora podemos instalar los paquetes de MySQL Cluster para los nodos de datos con estos comandos 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

Asegúrate de que no haya ningún error.

D. Configurar nodo de datos

Cree un nuevo archivo de configuración en el directorio /etc con el editor vi:

vi /etc/my.cnf

Pegue la configuración a continuación:

[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

Guarde el archivo y salga.

Luego cree el nuevo directorio para los datos de la base de datos que definimos en el archivo de configuración del nodo de administración "config.ini".

mkdir -p /var/lib/mysql-cluster

Ahora inicie el nodo de datos/ndbd:

ndbd

resultados:

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

Nodo de datos db2 conectado al nodo de gestión ip 192.168.1.120.

E. Vuelva a realizar los pasos 2.A - 2.D en el servidor db3.

Como tenemos 2 nodos de datos, vuelva a realizar los pasos 2.A - 2.D en nuestro segundo nodo de datos.

Paso 3:configurar el nodo SQL

Este paso contiene la configuración del nodo SQL que proporciona acceso a la aplicación a la base de datos. Usamos 2 servidores CentOS para los Nodos SQL:

  1. db4 =192.168.1.123
  2. db5 =192.168.1.124

A. Inicie sesión y descargue MySQL Cluster

Inicie sesión en el servidor db4 como usuario root:

ssh [email protected]

Y descargue el paquete 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. Instalar y eliminar paquetes

Instale perl-Data-Dumper y elimine las mariadb-libs que entran en conflicto con MySQL Cluster.

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

C. Instale el clúster de MySQL

Instale el servidor MySQL Cluster, el cliente y el paquete compartido con los siguientes comandos 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

D. Configurar el nodo SQL

Cree un nuevo archivo my.cnf en el directorio /etc:

vi /etc/my.cnf

Y pegue la configuración a continuación:

[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

Guarde el archivo y salga del editor.

Inicie el nodo SQL iniciando el servidor MySQL:

service mysql start

E. Vuelva a realizar el paso 3.A - 3.D en el servidor db5.

Vuelva a realizar los pasos 3.A - 3.D en el segundo servidor SQL (db5).

Paso 4:monitorear el clúster

Para ver el estado del clúster, debemos iniciar sesión en el nodo de administración db1.

ssh [email protected]

Podemos usar el comando ndb_mgm para ver el estado del clúster:

ndb_mgm
ndb_mgm> show

Otro comando útil es:

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

Paso 5:prueba del clúster

Para realizar una prueba en nuestro nuevo MySQL Cluster, debemos iniciar sesión en los servidores SQL Nodes db4 o db5.

Inicie sesión en el servidor db4:

ssh [email protected]

Cambie la contraseña predeterminada de MySQL que se almacenó en ".mysql_secret " archivo en el directorio raíz:

cd ~
cat .mysql_secret

esta es mi muestra:

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

Ahora cambie la contraseña con el siguiente comando:

mysql_secure_installation

Escriba su antigua contraseña mysql y luego escriba la nueva, presione Intro para confirmar todo.

Si todo está listo, puede iniciar sesión en el shell de MySQL con su contraseña:

mysql -u root -p

Después de iniciar sesión, cree un nuevo usuario raíz con el host "@ ", por lo que podremos acceder a MySQL desde el exterior.

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

Reemplazar aqwe123 con su propia contraseña segura! Ahora puede ver el nuevo usuario raíz con host "@" en la lista de usuarios de MySQL:

select user, host, password from mysql.user;

Y otorgue al nuevo usuario raíz acceso de lectura y escritura desde el nodo remoto:

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

Ahora intente crear una nueva base de datos desde el servidor db4 y verá la base de datos en db5 también.

Este es solo un resultado de muestra para probar la replicación de datos del clúster.

MySQL Cluster se configuró correctamente en CentOS 7 con 5 nodos de servidor.

Conclusión

MySQL Cluster es una tecnología que proporciona Alta Disponibilidad y Redundancia para bases de datos MySQL. Utiliza NDB o NDBCLUSTER como motor de almacenamiento y proporciona agrupación en clústeres sin compartir y fragmentación automática para bases de datos MySQL. Para implementar el clúster, necesitamos 3 componentes:Nodo de gestión (MGM), Nodos de datos (NDB) y Nodos SQL (API). Cada uno de los nodos debe tener su propia memoria y disco. No se recomienda utilizar almacenamiento en red como NFS. Para instalar MySQL Cluster en un sistema mínimo CentOS 7, debemos eliminar el paquete mariadb-libs, mariadb-libs entra en conflicto con MySQL-Cluster-server y debe instalar el paquete perl-Data-Dumper, lo necesita MySQL-Cluster -servidor. MySQL Cluster es fácil de instalar y configurar en múltiples servidores CentOS.


Cent OS
  1. Cómo instalar y configurar Nginx en CentOS 7

  2. Cómo instalar Node.js y NPM en CentOS 7

  3. Cómo instalar y configurar Redis en CentOS 7

  4. Cómo instalar y configurar GitLab en CentOS 7

  5. Cómo instalar Node.js y NPM en CentOS

Cómo instalar y configurar un Docker Swarm Cluster en CentOS 8

Cómo instalar y configurar Nagios 4.0.7 en CentOS 7

Cómo instalar y configurar ISPConfig CP en CentOS 7

Cómo instalar y configurar ownCloud en CentOS 7

Cómo instalar y configurar Samba en CentOS 8

Cómo instalar y configurar Fail2ban en CentOS 8