Está en la página 1de 4

Crear un cluster de mysql en Ubuntu Server 11.

04 - AWVEN Página 1 de 4

Primeros pasos
Lo primero que debemos tener son varias máquinas, para este ejemplo supongamos que tenemos 4,
una que hará las veces de nodo de administración, dos que serán los nodos de datos y por último una
que servirá de balanceador de carga, cada máquina debe tener como mínimo 1GB de RAM y 16 GB
de espacio en disco.

Instalando los paquetes


Los paquetes aqui presentados deben ser instalados en las máquinas que van a servir de nodo de
administración y los dos nodos de datos en el estricto orden aqui presentado.
sudo apt-get install mysql-server

Luego instalaremos el el paquete del cluster


sudo apt-get install mysql-cluster-server

Se instalarán también todas las dependencias que se necesiten para la instalación de este paquete.

Configuración el nodo de administración


Abrá con un editor de texto el archivo /etc/mysql/ndb_mgmd.cnf y escriba lo siguiente:
[NDBD DEFAULT]
NoOfReplicas=2 (En este caso de ejemplo, cambie segun el numero de nodo de datos
DataMemory=256M
IndexMemory=18M
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Sección para la configuración del nodo de administración
[NDB_MGMD]
# IP del nodo de administracion
HostName=192.168.1.1 #Cambiar por la ip que desee

Y la configuración de referencia de los nodos de datos:

[NDBD]
# IP del primer nodo de datos
HostName=192.168.1.2 #Cambiar por la ip que desee
DataDir=/var/lib/mysql-cluster
BackupDataDir=/var/lib/mysql-cluster/backup
DataMemory=512M
[NDBD]
# IP del segundo nodo de datos
HostName=192.168.1.3 #Cambiar por la ip que desee
DataDir=/var/lib/mysql-cluster
BackupDataDir=/var/lib/mysql-cluster/backup
DataMemory=512M

http://www.awven.com/q141-crear-un-cluster-mysql-ubuntu-server-1104/ 27-11-2012
Crear un cluster de mysql en Ubuntu Server 11.04 - AWVEN Página 2 de 4

#Por cada nodo debe cerrar con [MYSQLD]


[MYSQLD]
[MYSQLD]

Configurando los nodos de datos


En los nodos de datos debemos abrir (además de configurar sus direcciones ip
correspondientes)/etc/mysql/my.cnf

Añadir a la configuración existente


[mysqld]
ndbcluster
ndb-connectstring=192.168.1.1 #Ip de la consola de administracion

Añadir al final del archivo


[mysql_cluster]
ndb-connectstring=192.168.1.1

Por uñtimo debemos crear los directorios de backup que definimos en /etc/mysql/ndb_mgmd.cnf de
la siguiente manera:
sudo mkdir /var/lib/mysql-cluster/backup
sudo chmod mysql:mysql -R /var/lib/mysql-cluster

Armando todo
En estricto orden ejecutaremos los siguientes comandos en sus respectivas máquinas:

En la consola de administracion:
sudo /etc/init.d/mysql-ndb-mgm restart

En cada uno de los nodos de datos:


sudo /etc/init.d/mysql-ndb restart

Y luego de nuevo en los nodos de datos:


sudo /etc/init.d/mysql restart

Ahora prueba el cluster


En el nodo de administracion corra el siguiente comando:
sudo ndb_mgm

Y en la shell de mgm> corra el comando:


mgm> show

http://www.awven.com/q141-crear-un-cluster-mysql-ubuntu-server-1104/ 27-11-2012
Crear un cluster de mysql en Ubuntu Server 11.04 - AWVEN Página 3 de 4

Deberia ver todos los nodos que acaba de crear, para salir escriba
mgm> shutdown

Cree las bases de datos


En el primer nodo de datos corra el siguiente comando:
mysql -u root -p

Y en la shell de mysql cree una base de datos de prueba:


mysql> create databases test_db;

mysql> use test_db;

mysql> create table test_table (ival int(1));

mysql> insert into test_table values(1);

mysql> select * from test_table;

Debería ver el valor 1 en la tabla creada, ahora vaya al segundo nodo de datos e ingrese los datos de
acceso:
mysql -u root -p

Y desde la shell de mysql corra el siguiente comando:


mysql> show databases;

Deberia ver la tabla creada en el primer nodo con el valor 1 con los siguientes comandos:
mysql> use test_db;

mysql> select * from test_table;

Si es así, ya esta listo su Cluster, ahora pasaremos al balanceador de carga

Y por último el balanceador de carga


Instalamos mysql-proxy:
sudo apt-get install mysql-proxy

Ahora iniciaremos el proxy y conectaremos con nuestros dos nodos de datos


screen -S proxy

mysql-proxy –proxy-backend-addresses=192.168.1.2:3306 –proxy-backend-addresses=192.168.1

Lo probamos:

http://www.awven.com/q141-crear-un-cluster-mysql-ubuntu-server-1104/ 27-11-2012
Crear un cluster de mysql en Ubuntu Server 11.04 - AWVEN Página 4 de 4

mysql -u root -p -h 127.0.0.1 -P 4040

mysql> use test_db;

mysql> select * from test_table;

Si ve la tabla con el valor 1 antes probado ya tenemos nuestro cluster montado con su balanceador de
carga perfectamente configurado.

Felicitaciones.

http://www.awven.com/q141-crear-un-cluster-mysql-ubuntu-server-1104/ 27-11-2012

También podría gustarte