Cómo Configurar un Clúster MySQL 8 de Tres Nodos en Debian 12

Artículos Guías Manuales Sistemas Linux Windows Binario 0

En este artículo, te guiaremos paso a paso para configurar un clúster MySQL 8 con tres nodos en Debian 12, asegurando alta disponibilidad y escalabilidad para tu base de datos. Desde la instalación del servidor de gestión hasta la configuración de los nodos de datos y el servidor MySQL, aprenderás a poner en marcha un entorno robusto para tus aplicaciones. Sigue estos sencillos pasos para optimizar y distribuir el procesamiento de datos en tu infraestructura.

Para configurar un clúster MySQL 8 de tres nodos en Debian 12, sigue los pasos detallados a continuación:

Requisitos previos

  • Tres servidores con Debian 12, uno para el nodo de gestión y dos para los nodos de datos.
  • Contraseña de root configurada en cada servidor.

Paso 1: Actualizar los servidores

Actualiza todos los servidores con el siguiente comando:

apt-get update -y

Paso 2: Instalar y configurar MySQL Cluster Manager (Nodo Maestro)

  1. Descarga el paquete del servidor de gestión de MySQL:
wget https://cdn.mysql.com//Downloads/MySQL-Cluster-8.0/mysql-cluster-community-management-server_8.0.24-1debian12_amd64.deb
  1. Instálalo:
dpkg -i mysql-cluster-community-management-server_8.0.24-1debian12_amd64.deb
  1. Crea un directorio para la configuración del clúster:
mkdir /var/lib/mysql-cluster
  1. Crea el archivo de configuración config.ini:
nano /var/lib/mysql-cluster/config.ini

Añade el siguiente contenido:

[ndbd default]
NoOfReplicas=2

[ndb_mgmd]
hostname=192.168.1.2
datadir=/var/lib/mysql-cluster

[ndbd]
hostname=192.168.1.3
NodeId=2
datadir=/usr/local/mysql/data

[ndbd]
hostname=192.168.1.4
NodeId=3
datadir=/usr/local/mysql/data

[mysqld]
hostname=192.168.1.2
  1. Inicia el gestor de clústeres:
ndb_mgmd -f /var/lib/mysql-cluster/config.ini
  1. Detén el servidor en ejecución:
pkill -f ndb_mgmd
  1. Crea un archivo de servicio systemd para el gestor:
nano /etc/systemd/system/ndb_mgmd.service

Con el siguiente contenido:

[Unit]
Description=MySQL NDB Cluster Management Server
After=network.target auditd.service

[Service]
Type=forking
ExecStart=/usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target
  1. Recarga systemd:
systemctl daemon-reload
  1. Inicia y habilita el servicio:
systemctl start ndb_mgmd
systemctl enable ndb_mgmd
  1. Verifica el estado del servicio:
systemctl status ndb_mgmd

Paso 3: Instalar y configurar los Nodos de Datos

  1. Instala las dependencias necesarias en los nodos de datos:
apt-get install libclass-methodmaker-perl -y
  1. Descarga el paquete de los nodos de datos:
wget https://cdn.mysql.com//Downloads/MySQL-Cluster-8.0/mysql-cluster-community-data-node_8.0.24-1debian12_amd64.deb
  1. Instálalo:
dpkg -i mysql-cluster-community-data-node_8.0.24-1debian12_amd64.deb
  1. Crea o edita el archivo /etc/my.cnf en los nodos de datos con:
nano /etc/my.cnf

Añade:

[mysql_cluster]
ndb-connectstring=192.168.1.2
  1. Crea el directorio de datos:
mkdir -p /usr/local/mysql/data
  1. Inicia el nodo de datos:
ndbd
  1. Detén el proceso:
pkill -f ndbd
  1. Crea un archivo de servicio systemd para ndbd:
nano /etc/systemd/system/ndbd.service

Con el siguiente contenido:

[Unit]
Description=MySQL NDB Data Node Daemon
After=network.target auditd.service

[Service]
Type=forking
ExecStart=/usr/sbin/ndbd
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target
  1. Recarga systemd:
systemctl daemon-reload
  1. Inicia y habilita el servicio:
systemctl start ndbd
systemctl enable ndbd
  1. Verifica el estado del servicio:
systemctl status ndbd

Paso 4: Instalar y configurar el servidor MySQL

  1. Descarga el paquete MySQL Cluster Bundle:
wget https://cdn.mysql.com/Downloads/MySQL-Cluster-8.0/mysql-cluster_8.0.24-1debian12_amd64.deb-bundle.tar
  1. Extrae los archivos:
tar -xvf mysql-cluster_8.0.24-1debian12_amd64.deb-bundle.tar -C /opt
  1. Instala dependencias necesarias:
cd /opt
apt-get install libaio1 libmecab2 libnuma1 psmisc -y
  1. Instala los paquetes de MySQL:
dpkg -i mysql-common*
dpkg -i mysql-cluster-community-client_8.0.24-1debian12_amd64.deb
dpkg -i mysql-cluster-community-server*
  1. Si hay errores de dependencia, ejecútalos con:
apt-get install -f
  1. Durante la instalación, se te pedirá la contraseña de root para MySQL.
  2. Edita /etc/mysql/my.cnf:
nano /etc/mysql/my.cnf

Añade:

[mysqld]
ndbcluster
[mysql_cluster]
ndb-connectstring=192.168.1.2
  1. Reinicia el servicio MySQL:
systemctl restart mysql
systemctl enable mysql
  1. Verifica el estado del servicio MySQL:
systemctl status mysql

Paso 5: Probar el clúster MySQL

  1. Inicia sesión en el nodo gestor de MySQL:
mysql -u root -p
  1. Verifica el estado del clúster:
SHOW ENGINE NDB STATUS \G
  1. Conéctate a la consola de gestión del clúster:
ndb_mgm
  1. Verifica los nodos de datos:
SHOW
  1. Verifica el estado de los nodos de datos:
2 STATUS
3 STATUS

Conclusión

Has configurado con éxito un clúster MySQL de tres nodos en Debian 12. Ahora, tu clúster está listo para proporcionar escalabilidad y alta disponibilidad.