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)
- 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
- Instálalo:
dpkg -i mysql-cluster-community-management-server_8.0.24-1debian12_amd64.deb
- Crea un directorio para la configuración del clúster:
mkdir /var/lib/mysql-cluster
- 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
- Inicia el gestor de clústeres:
ndb_mgmd -f /var/lib/mysql-cluster/config.ini
- Detén el servidor en ejecución:
pkill -f ndb_mgmd
- 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
- Recarga
systemd
:
systemctl daemon-reload
- Inicia y habilita el servicio:
systemctl start ndb_mgmd
systemctl enable ndb_mgmd
- Verifica el estado del servicio:
systemctl status ndb_mgmd
Paso 3: Instalar y configurar los Nodos de Datos
- Instala las dependencias necesarias en los nodos de datos:
apt-get install libclass-methodmaker-perl -y
- 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
- Instálalo:
dpkg -i mysql-cluster-community-data-node_8.0.24-1debian12_amd64.deb
- 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
- Crea el directorio de datos:
mkdir -p /usr/local/mysql/data
- Inicia el nodo de datos:
ndbd
- Detén el proceso:
pkill -f ndbd
- Crea un archivo de servicio
systemd
parandbd
:
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
- Recarga
systemd
:
systemctl daemon-reload
- Inicia y habilita el servicio:
systemctl start ndbd
systemctl enable ndbd
- Verifica el estado del servicio:
systemctl status ndbd
Paso 4: Instalar y configurar el servidor MySQL
- 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
- Extrae los archivos:
tar -xvf mysql-cluster_8.0.24-1debian12_amd64.deb-bundle.tar -C /opt
- Instala dependencias necesarias:
cd /opt
apt-get install libaio1 libmecab2 libnuma1 psmisc -y
- 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*
- Si hay errores de dependencia, ejecútalos con:
apt-get install -f
- Durante la instalación, se te pedirá la contraseña de root para MySQL.
- Edita
/etc/mysql/my.cnf
:
nano /etc/mysql/my.cnf
Añade:
[mysqld]
ndbcluster
[mysql_cluster]
ndb-connectstring=192.168.1.2
- Reinicia el servicio MySQL:
systemctl restart mysql
systemctl enable mysql
- Verifica el estado del servicio MySQL:
systemctl status mysql
Paso 5: Probar el clúster MySQL
- Inicia sesión en el nodo gestor de MySQL:
mysql -u root -p
- Verifica el estado del clúster:
SHOW ENGINE NDB STATUS \G
- Conéctate a la consola de gestión del clúster:
ndb_mgm
- Verifica los nodos de datos:
SHOW
- 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.