LinuxParty

Ratio: 4 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio desactivado
 

La forma más fácil de seguir este tutorial es utilizar un cliente de línea de comandos / cliente SSH (como PuTTY para Windows) y simplemente copiar y pegar los comandos (excepto donde hay que proporcionar información propia como direcciones IP, nombres de host, contraseñas, ...). Esto ayuda a evitar errores tipográficos.

Cómo montar la replicación de base de datos de MySQL

En este tutorial se describe cómo configurar la replicación de bases de datos en MySQL. La replicación MySQL le permite tener una copia exacta de una base de datos desde un servidor maestro en otro servidor (esclavo), y todas las actualizaciones de la base de datos en el servidor principal se replican inmediatamente en la base de datos en el servidor esclavo para que ambas bases de datos están en sintonía. Esto no es una política de copia de seguridad, ya que un accidente emitido mediante el comando DELETE también se llevará a cabo en el esclavo, pero la replicación puede ayudar a proteger contra fallos de hardware.

En este tutorial le mostraré cómo replicar la base de datos exampledb del maestro con la dirección IP 192.168.0.100 a un esclavo. Ambos sistemas (maestro y esclavo) se están ejecutando Debian, sin embargo, la configuración debe aplicarse a casi todas las distribuciones con poca o ninguna modificación.

Ambos sistemas tienen instalado MySQL, y la base de datos exampledb con tablas y datos ya existentes en el maestro, pero no en el esclavo.

Quiero decir primero que esta no es la única manera de crear tal sistema. Hay muchas maneras de lograr este objetivo, pero este es el camino que yo tomo.

1 Configure el Maestro

Primero tenemos que editar el archivo /etc/ mysql/my.cnf. y habilitar la red para MySQL, así MySQL debe escuchar todas las direcciones IP, por lo que comente estas líneas (si existen):

#skip-networking
#bind-address = 127.0.0.1

Por otra parte tenemos que decirle a MySQL cual base de datos debe escribir los registros (estos registros son usados por el esclavo para ver lo que ha cambiado en el maestro), que archivo de registro debe usar, y hay que especificar que éste servidor MySQL es el maestro. Queremos replicar la base de datos exampledb, por lo que hay poner las siguientes líneas en /etc/mysql/my.cnf:

 log-bin = /var/log/mysql/mysql-bin.log
binlog-do-db=exampledb
server-id=1

Luego reinicie MySQL:

/etc/init.d/mysql restart

Tras ingresar a la base de datos MySQL como root y crear un usuario con privilegios de replicación:

mysql -u root -p
Enter password:

Ahora estamos en el shell de MySQL.

GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY '<some_password>'; (Replace <some_password> with a real password!)
FLUSH PRIVILEGES;

 

Siguiente (aún en el shell de MySQL) haga lo siguiente:

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

El último comando mostrará algo como esto:

+---------------+----------+--------------+------------------+
| File | Position | Binlog_do_db | Binlog_ignore_db |
+---------------+----------+--------------+------------------+
| mysql-bin.006 | 183 | exampledb | |
+---------------+----------+--------------+------------------+
1 row in set (0.00 sec)

Anote esta información (la de file, y position), le hará falta más adelante en el esclavo!

A continuación dejo el shell de MySQL:

quit;


Hay dos posibilidades para obtener las tablas existentes y los datos de exampledb desde el maestro al esclavo. El primero es hacer un volcado de base de datos, la segunda es utilizar el comando LOAD DATA FROM MASTER, desde el servidor esclavo. Este último tiene una desventaja, la base de datos en el maestro puede bloquearse durante esta operación, por lo que si usted tiene una gran base de datos en un sistema de producción de alto tráfico, esto no es lo que quieres, y te recomiendo seguir el primer método en este caso. Sin embargo, este último método es muy rápido, así que voy a describir los dos aquí.

Si quieres seguir el primer método, entonces haga lo siguiente:

mysqldump -u root -p<password> --opt exampledb > exampledb.sql

(Reemplazar <contraseña> con la contraseña real para el usuario root de MySQL Importante: No hay ningún espacio entre -p y <contraseña>!)

Esto creará un volcado SQL del exampledb en el archivo exampledb.sql. Transfiera este archivo a tu servidor esclavo!

Si quieres usar LOAD DATA FROM MASTER, entonces no hay nada que usted debe hacer en estos momentos.


Finalmente tenemos que abrir las tablas en exampledb:

mysql -u root -p
Enter password:
UNLOCK TABLES;
quit;

Ahora, la configuración en el maestro ha terminado. En el esclavo...


 SIGUIENTE: Cómo replicar una de base de datos de MySQL (2 de 2)


 

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Nos obligan a moslestarte con la obviedad de que este sitio utiliza Cookies. Ver política