jueves, 7 de enero de 2016

Replicación con MySQL

Enseguida veremos como configurar un server maestro y un esclavo para replicar una base de datos con MySQL, usando los siguientes pasos:

1.- Lo primero que debemos hacer es eligir un server maestro, éste es el que alberga la base de datos que queremos replicar, buscamos el archivo my.cnf que normalmente se encuentra en la ruta /etc/mysql/.

2.- Ya que encontramos el archivo de configuración lo abrimos con nuestro editor favorito, debemos asegurarnos que nuestro server escuche en todas las direcciones IP, por lo tanto debemos buscar y comentar la siguiente linea del archivo:

#bind-address = 127.0.0.1

3.- Enseguida buscamos las siguientes lineas para configurar el server-id, el archivo de log de la base de datos y la base de datos que queremos replicar.

server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = bin

4.- Enseguida reiniciamos el servicio de MySQL para cargar la nueva configuración, en mi caso con Ubuntu, sería el siguiente comando.

sudo service mysql restart

5.- Una vez que reiniciamos el servicio  de MySQL, debemos crear un usuario con privilegios de replicación, nos conectamos a MySQL y ejecutamos el siguiente comando.

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '';

6.- Enseguida ejecutamos los siguientes comandos para conocer el status de la replicación.

USE bin;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000009 |      317 | bin          |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

6.1.- Copiamos los resultados de las columnas File y Position, ya que esos datos nos servirán para configurar el esclavo.

7.- Debemos de generar un respaldo de la base de datos que deseamos replicar, en este caso dicha base de datos se llama bin, y lo montamos en el servidor esclavo y ejecutamos en siguiente comando:

SLAVE STOP;

8. Una vez que montamos en respaldo en el servidor esclavo, debemos configurar éste para que sepa que es un esclavo, así que editamos las siguientes lineas del archivo my.cnf del esclavo.

server-id=2
master-host=192.168.1.2
master-user=slave
master-password=password
master-connect-retry=60
replicate-do-db=bin 

Donde master-host es la dirección IP del Servidor Maestro, master-user es el usuario con privilegios de replicación creado en el master y replicate-do-db es la bd que deseamos replicar.

9.- Una vez que configuramos el servidor esclavo, ejecutamos los siguientes comandos con los datos que obtuvimos en el paso 6.

CHANGE MASTER TO MASTER_HOST='192.168.1.2', MASTER_USER='slave', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000009', MASTER_LOG_POS=317;

START SLAVE;

10.- Ahora que ya quedó configurado el esclavo, ejecutamos alguna sentencia de actualización en el maestro, para ver la replicación en acción.

1 comentario:

jaasonkaczmarczyk dijo...

Harrah's Cherokee Casino Resort - MapYRO
Harrah's 진주 출장샵 Cherokee Casino Resort. 777 Casino Drive, Cherokee, NC 28719, 28719. Directions · (888) 화성 출장샵 672-1000. Call Now 사이트 추천 · More Info. Hours, 계룡 출장안마 Accepts Credit 안성 출장안마 Cards, Attire,