Pasos para replicación de una base de datos MySQL en VirtualBox MSC. Martín Contreras PASOS NECESARIOS PARA LA CONEXIÓN ENTRE MASTER y ESCLAVO 1. Instalar la aplicación VirtualBox (https://www.virtualbox.org/wiki/Downloads) 2. Crear una máquina virtual con el sistema operativo Windows XP. 3. Desactivar firewall de Windows en la maquina LOCAL (en caso de tener antivirus es necesaria la desactivarlo desde éste) y en la VIRTUAL 4. En la máquina VIRTUAL ir a la configuración del menú Red y cambiar el adaptador a “Adaptador solo-anfitrión” de nombre “VirtualBox Host-Only Network” (Si no te aparece el nombre deberás instalar el driver de red en la máquina virtual) 5. Conectar la maquina LOCAL con la máquina VIRTUAL utilizando el adaptador "VirtualBox Host-Only Network" que es creado automáticamente por VirtualBox. a. En la máquina local (MASTER) verificar que la configuración IPv4 en "VirtualBox Host-Only Network" sea: IP MASCARA DE RED PUERTA ENLANCE 192.168.56.1 255.255.255.0 . . . b. En la máquina virtual (ESCLAVO) verificar que la configuración IPv4 sea: IP MASCARA DE RED PUERTA ENLANCE 192.168.56.101 255.255.255.0 192.168.56.1 c. Verificar la conexión entre computadoras mediante PING desde el símbolo del sistema de LOCAL a VIRTUAL y viceversa. 6. Instalar la misma versión de MySQL en ambos sistemas operativos tanto LOCAL como VIRTUAL (En nuestro caso utilizamos la compilación xampp 1.6.7 que contiene la versión 5.0.51b de MySQL, xampp dio soporte a Windows XP hasta la versión 1.8.1 según comentan bloggers no hay un anuncio oficial). La instalación debe realizarse en la unidad C:\ para efectos de este tutorial. El link de versione es: http://code.stephenmorley.org/articles/xampp-version-history-apache-mysql-php/ CONFIGURACIÓN EN EL EQUIPO LOCAL (MASTER) 7. Abrir el archivo "my.cnf" de la instalación local de MySQL, localizando las líneas de código "log-bin" y del "server-id", descomentarlas quedando de la siguiente manera: log-bin= mysql-bin server-id= 1 (Debe reiniciarse el MySQL al finalizar la modificación) 8. Crear un usuario para replicar a los esclavos mediante la sentencia: GRANT {permisos} ON *.* TO '{usuario}'@'{ip_esclavo}' IDENTIFIED BY '{contraseña}'; Donde reemplazando los valores {usuario} por replicador, {contraseña} por 1234 y {permisos} por REPLICATION SLAVE la sentencia nos queda así: GRANT REPLICATION SLAVE ON *.* TO 'replicador'@'%' IDENTIFIED BY '1234'; 9. Crear la base de datos a replicar con el nombre “Replicacion” y con una sola tabla llamada “Mascotas” CREATE DATABASE Replicacion; USE Replicacion; CREATE TABLE Mascotas ( id INT NOT NULL AUTO_INCREMENT, Nombre VARCHAR(80) NOT NULL, Edad INT, PRIMARY KEY (id) ); INSERT INTO mascotas VALUES (1,'Max',2),(2,'Firulais',2),(3,'Manchas',2),(4,'Perrochito', 2); 10. Crear el respaldo de la base de datos para copiarla al ESCLAVO (es necesario abrir en modo Administrador el símbolo del sistema) mysqldump -u root -p replicacion>c:\respaldo.sql 11. Obtener los datos del "master_log_file" y "master_log_pos" para permitir la sincronización de los ESCLAVOS mediante el comando: mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 98 | | | +------------------+----------+--------------+------------------+ Donde: master_log_file = mysql-bin.000001 master_log_pos = 98 CONFIGURACIÓN EN EL EQUIPO VIRTUAL (ESCLAVO) con WINDOWS XP 12. Abrir el archivo "my.cnf" de la instalación local de MySQL para modificar la línea de código "server-id" a 2 quedando de la siguiente manera: server-id= 2 (Debe reiniciarse el MySQL al finalizar la modificación) 13. Copiar el respaldo de la base de datos creado en el paso 10 “C:\respaldo.sql" a la carpeta “C:\” del equipo VIRTUAL. 14. Crear la base de datos llamada “replicacion” CREATE DATABASE replicacion; 15. Recuperar el respaldo de la base de datos mysql -u root -p replicacion<c:\respaldo.sql 16. Detener el servicio en el ESCLAVO stop SLAVE; 17. Conectar el ESCLAVO al MASTER con los datos generados en pasos anteriores Datos necesarios: master_host = {dirección IP del master} Ver en paso 5 master_user= {nombre de usuario que se conectará en el master} Ven en paso 8 master_password={contraseña del usuario} Ven en paso 8 master_log_file= {nombre del log binary} Ven en paso 11 master_log_pos= {posición del log binary} Ven en paso 11 Reemplazando en la sintaxis los valores: CHANGE MASTER TO master_host="192.168.56.1", master_user="replicador", master_password='1234', master_log_file='mysql-bin.000001', master_log_pos=98; 18. Volver a levantar el servicio start SLAVE; PROBANDO LA REPLICACIÓN 19. Insertar desde la computadora LOCAL (MASTER) una nueva mascota en la base de datos “Replicacion” e inmediatamente mostrar los registros existentes con el comando SELECT. USE Replicacion; INSERT INTO Mascotas (Nombre, Edad) VALUES (“Nueva mascota”,10); SELECT * FROM Mascotas; 20. Ir a la máquina VIRTUAL (ESCLAVO) y verificar si en verdad se ha replicado la última acción sobre el MASTER mediante el comando SELECT Bibliografía http://manuales.guebs.com/mysql-5.0/replication.html https://www.youtube.com/watch?v=VcqLsXKF2Ho
© Copyright 2025