Anda di halaman 1dari 6

Replicación de una Base De Datos usando MySql en Windows y Linux

Para la replicación de base de datos se necesitan un Maestro y uno o varios esclavos según
sea el caso.

Para esta práctica se necesita:


Mínimo 2 computadoras conectadas en red
Tener instalado el gestor de bases de datos MySql
Agregar al path la carpeta Bin de MySql si este no fue marcado en la instalación
Tener permisos de ROOT

Empezamos Configurando el Maestro:


1. Buscar y abrir el archivo My.cnf (My.ini en sistemas Windows)

En Windows se encuentra en: c:\Archivos de Programa\MySQL\MySQL Server


5.1\
En Sistemas Linux se encuentra: /etc/my.cnf

2. Buscar y comentar las siguientes lineas si es que se encuentran:


#skip-networking
#bind-address = 127.0.0.1

3. Agregar despues de la linea [mysqld] lo siguiente:


log-bin =mysql-bin.log
binlog-do-db=nombre_base_de_datos
server-id=1

Nota:

El server-id en el servidor siempre será 1, y los esclavos serán 2, 3… n según sea el


caso en binlog-do-db se pone el nombre de la base de datos que replicara despues de
signo = .
4. Entramos a los servicios en Windows y reiniciamos el servicio de
MySql (omitir este paso en sistemas Linux)
5. Entramos en MySql escribiendo en la linea de comandos lo siguiente:
mysql -u root -p

6. Ahora en el shell de mysql escribir:


GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'%' IDENTIFIED BY
'password';
FLUSH PRIVILEGES;

Nota:

En password pondra la contraseña que quiera ponerle al master en slave1 se está


agregando el primer esclavo el usuario será en este caso Slave1, si se agrega un
segundo esclavo sería Slave2 y así sucesivamente.

7. Una vez esto seleccione la base de datos a replicar y realice lo


siguiente:
USE nombre_base_datos;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

Después de esto el gestor mostrará lo siguiente:


8. Salir de MySql utilizando el comando quit o exit
9. Ahora haremos un Backup de la Base de Datos que se encuentra en el
Maestro para tener el mismo esquema y datos en los esclavos, para
hacer eso escribimos en la terminal o en el cmd:
mysqldump -u root -p --opt nombre_base_de_datos >
nombre_base_de_datos.sql

10. Finalmente desbloqueamos las tablas de la base de Datos


mysql -u root -p
UNLOCK TABLES;
quit;

Ahora vamos a configurar el Esclavo


1. Como primer paso hay que crear la base de datos que queremos
replicar:
mysql -u root -p
CREATE DATABASE base_de_datos;
quit;

Nota:
Antes de continuar es necesario que donde hicimos el respaldo o backup de la base
de datos en el master copiemos el archivo .sql que se genero y lo peguemos en la
maquina que funcionara como esclavo en la unidad c:\.

2. Una vez que salimos del gestor escribimos el siguiente comando para
copiar la base de datos del archivo que generamos:
mysql -u root -p nombre_base_de_datos <
c:\nombre_base_de_datos.SQL

3. Buscamos el archivo My.cnf (en caso de windows My.ini) y despues


del [mysqld]
agregamos lo siguiente:
server-id=2
master-host=Dirección ip del maestro
master-user=slave1
master-password=password
master-connect-retry=60
replicate-do-db=nombre_base_de_datos

4. Reiniciamos el servicio de MySql (omitir este paso en sistemas Linux)


5. Finalmente entramos a MySql y detenemos el esclavo
mysql -u root -p
SLAVE STOP;

6. Una vez que se detuvo el esclavo escribimos lo siguiente con el fin de


actualizar la tabla que utiliza el esclavo para replicar
CHANGE MASTER TO MASTER_HOST='ip_del_master',
MASTER_USER='slave1', MASTER_PASSWORD='clave_del_master',
MASTER_LOG_FILE='mysql-bin.006', MASTER_LOG_POS=183;

Nota:

En MASTER_LOG_POS va la posicion que nos marco cuando ejecutamos SHOW


MASTER STATUS en el paso 7 de la configuracion del master.

7. Finalmente escribimos START SLAVE

Si todo salio bien no queda mas que probar


En el Master vamos insertar un dato en la tabla de nuestra base de datos

En el esclavo hacemos una consulta para verificar que todo salió bien en caso contrario hay
que verificar los pasos
Como vemos en la imagen anterior al hacer la consulta tenemos nuestro nuevo dato en la
tabla
Con esto damos por concluido este tutorial cualquier duda o sugerencia estamos para
servirles

Anda mungkin juga menyukai