Está en la página 1de 2

Base de Datos distribuidas

Configuración de una replicación Maestro - Maestro:


1) Actualizamos repositorios en la maquina e instalamos mysql en nuestra maquina, esto en
los dos servidores (en las dos maquinas virtuales).

sudo apt-get update


sudo apt-get install mysql-server mysql-client

2) Edite el archivo de configuración /etc/mysql/my.cnf. Agregue o modifique los siguiente


valores:

Servidor 1:
Extracto del archivo: /etc/mysql/my.cnf
server_id =1
log_bin = /var/log/mysql/mysql-bin.log
log_bin_index = /var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index
expire_logs_days = 10
max_binlog_size = 100M
log_slave_updates = 1
auto-increment-increment = 2
auto-increment-offset = 1
3) Servidor 2:
Extracto del archivo: /etc/mysql/my.cnf
server_id =2
log_bin = /var/log/mysql/mysql-bin.log
log_bin_index = /var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index
expire_logs_days = 10
max_binlog_size = 100M
log_slave_updates = 1
auto-increment-increment = 2
auto-increment-offset = 2

4) Para cada uno de los servidores, edite la configuración del archivo bind-address con el fin
de usar las direcciones IP privadas:
Extracto del archivo: /etc/mysql/my.cnf
bind-address = 123.45.67.8

5) Una vez completado, reinicie la aplicación MySQL:


sudo service mysql restart

6) Crear usuarios para la replicación


Inicie su sesión MySQL en cada uno de sus servidores:
mysql -u root -p

7) Configure los usuarios de replicación en cada BlueHosting. Remplace 123.45.67.8 con la


dirección IP privada del servidor opuesto, y SuContraseña con una contraseña apropiada y
segura:
Base de Datos distribuidas

GRANT REPLICATION SLAVE ON *.* TO 'replication'@'123.45.67.8' IDENTIFIED


BY 'SuContraseña';

8) Ejecute el siguiente comando para probar la configuración. Use la dirección IP privada del
BlueHosting opuesto:
mysql -ureplication -p -h 123.45.67.8 -P 3306

CONFIGURAR UNA REPLICACIÓN DE LA BASE DE DATOS

9) Con su sesión MySQL iniciada en el primer servidor, haga una petición sobre el estatus del
maestro o master:
SHOW MASTER STATUS;
***Note los valores file y position que se muestran:***
mysql> SHOW MASTER STATUS;

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

10) En el segundo servidor, desde la línea de comandos de MySQL, establezca la función de


esclavo (slave) para esa base de datos. Remplace 123.45.67.9 con la dirección IP privada
del primer servidor. También remplace el valor de master_log_file con el nombre del
archivo (file) del paso anterior, y el valor master_log_poscon el valor de posición (position)
en el paso anterior:
SLAVE STOP;

CHANGE MASTER TO master_host='123.45.67.9', master_port=3306,


master_user='replication', master_password='SuContraseña',
master_log_file='mysql-bin.000001', master_log_pos=106;

SLAVE START;

11) En el Servidor 2, solicite el estatus del maestro o master. Una vez más, tome nota de los
valores file y position:
SHOW MASTER STATUS;
Establezca el estatus de base de datos esclava en el Servidor 1, remplazando los
mismos valores del paso 2 con los del Servidor 2.
SLAVE STOP;
CHANGE MASTER TO master_host='123.45.67.8', master_port=3306,
master_user='replication', master_password='SuContraseña',
master_log_file='mysql-bin.000001', master_log_pos=277;
SLAVE START;
12) Pruebe creando una base de datos e insertando una fila:
Servidor 1:
create database test;
create table test.flowers (`id` varchar(10));
Servidor 2:
show tables in test;