How to Install and Configure MySQL Cluster on Windows
MySQL Clúster es una versión de alta disponibilidad, alta redundancia de MySQL adaptada para el entorno de computación distribuida. Usa el motor de almacenamiento NDB Cluster para permitir la ejecución de varios servidores MySQL en un clúster. Este motor de almacenamiento está disponible en las distribuciones binarias de MySQL 5.0, Los sistemas en los que está disponible son Linux, Solaris y Windows.
En este artículo vamos a revisar la manera cómo configurarlo.
La infraestructura que utilizaremos será la siguiente:
Los requerimientos son los siguientes:
- MySQL cluster. En este artículo se usó la versión 7.2.10. (https://downloads.mysql.com/archives/cluster/)
- 3 computadoras con Windows XP con configuración de IP's por DHCP
- Desactivar firewall
- Desactivar antivirus
- Desinstalar y limpiar versiones anteriores de MySQL
En cada uno de los tres nodos de la figura mostrada anteriormente, crear la estructura de carpetas y su contenido a partir del comando:
C:\>mkdir my_cluster my_cluster\ndb_data my_cluster\mysqld_data my_cluster\conf C:\>mkdir my_cluster\mysqld_data\mysql my_cluster\mysqld_data\ndbinfo C:\>copy c:\mysqlc\data\mysql my_cluster\mysqld_data\mysql C:\>copy c:\mysqlc\data\ndbinfo my_cluster\mysqld_data\ndbinfo
Nodo Administrador
Crear el archivo config.ini en la carpeta c:\my_cluster\conf con el siguiente contenido:
[ndb_mgmd] HostName=192.168.1.100 DataDir=c:\my_cluster\ndb_data Nodeid=1 [Ndbd default] NoOfReplicas=2 [Ndbd] HostName=192.168.1.101 Nodeid=3 [Ndbd] HostName=192.168.1.102 Nodeid=4 [Mysqld] [Mysqld]Iniciar el nodo administrador ejecutando el siguiente comando y dejando la consola abierta.
C:\my_cluster>/mysqlc/bin/ndb_mgmd -f conf/config.ini --initial --configdir=c:\my_cluster\conf\En otra consola de comandos del nodo administrador, ejecutar el programa para verificar el estado de nuestro cluster.
C:\>C:\mysqlc\bin\ndb_mgm -e showEl resultado deberá ser similar al mostrado a continuación:
Nodos de Datos
En cada uno de los nodos de datos, crear el archivo my.cnf en la carpeta c:\my_cluster\conf. El puerto debe ser diferente para cada nodo de dato y de preferencia mayor a 5000.
[mysqld] ndbcluster datadir=c:\my_cluster\mysqld_data port=15002 ndb-connectstring = 192.168.1.100 [mysql_cluster] ndb-connectstring = 192.168.1.100Ahora nos conectamos con el nodo administrador ejecutando el siguiente comando en cada uno de los dos nodos de datos
C:\>c:\mysqlc\bin\ndbd -c 192.168.1.100:1186Sin embargo, al ejecutar en el nodo administrador el siguiente comando.
C:\>C:\mysqlc\bin\ndb_mgm -e show
Podemos notar que, a pesar que la conexión al nodo administrador ha sido hecha, los nodos SQL aún no están habilitados (not connected, accepting connect from any host).
Para levantar las API's, ejecutar en cada nodo de datos el siguiente comando en una consola nueva:
C:\my_cluster>c:\mysqlc\bin\mysqld --defaults-file=conf/my.cnf --console
Al volver a ejecutar el comando de visualización de conexiones en el nodo administrador, la salida será la siguiente:
Ahora sólo resta conectarnos al motor de base de datos de cada nodo utilizando una nueva consola para ejecutar el siguiente comando, teniendo en cuenta el puerto establecido en el archivo my.cnf. En este caso, mostraremos la conexión en el nodo que utiliza el puerto 15002.
c:\my_cluster>c:\mysqlc\bin\mysql -P15002 -u root
Al levantar los dos motores, cualquier sentencia SQL ejecuta en uno de ellos deberá verse automáticamente reflejada en la otra instancia. La siguiente imagen ilustra esto:
Inicialmente, en la consola azul habían las mismas base de datos que en la consola blanca, sin embargo al crear la base de datos clusterdb en esta última, la instancia azul reflejó automáticamente los cambios.
#Ejecutar por cada nodo de datos, teniendo en cuenta el puerto C:\my_cluster>c:\mysqlc\bin\mysqladmin -u root -h 127.0.0.1 -P15000 shutdown #Nodo administrador C:\my_cluster>c:\mysqlc\bin\ndb_mgm -e shutdown #Ver puertos netstat -oan
Comentarios
Publicar un comentario