Ingresar  \/ 
x
 Use Facebook account  Use Google account  Use Microsoft account  Use LinkedIn account
o
Registrarse  \/ 
x
 Use Facebook account  Use Google account  Use Microsoft account  Use LinkedIn account
o

  • Fututel
  • Blog
  • Configurar la Replicación Esclava - Maestro en MySQL

Configurar la Replicación Esclava - Maestro en MySQL

                           Configurar Replicación Esclava Maestro MySQL

Acerca de la Replicación de MySQL

La replicación de MySQL es un proceso que le permite mantener fácilmente copias múltiples de datos MySQL permite copiar automáticamente una base maestra a una esclava. Esto puede ser útil por muchas razones, incluyendo la facilitación de una copia de seguridad de los datos, una forma de analizarlo sin utilizar la base de datos principal, o simplemente como un medio para escalar hacia fuera.

Este tutorial cubrirá un ejemplo muy simple de replicación de Mysql: un maestro enviará información a un único esclavo. Para que el proceso funcione, necesitará dos direcciones IP: una del servidor maestro y otra del esclavo.

Este tutorial utilizará las siguientes direcciones IP:

12.34.56.789 - Base de datos maestra

12.23.34.456- Base de datos de esclavos

Configuración

En este artículo se supone que tiene usuario con privilegios de sudo y que MySQL está instalado. Si no tiene Mysql, puede instalarlo con este comando:

sudo apt-get install mysql-server mysql-client

Paso Uno: Configure la Base de Datos Maestra

Abra el archivo de configuración Mysql en el servidor maestro.

sudo nano /etc/mysql/my.cnf

Una vez dentro de ese archivo, necesitamos hacer algunos cambios.

El primer paso es encontrar la sección que se parece a esto, vinculando el servidor al host local:

bind-address            = 127.0.0.1

Sustituya la dirección IP estándar por la dirección IP del servidor.

bind-address            = 12.34.56.789 

El siguiente cambio de configuración se refiere al id del servidor, ubicado en la sección [Mysqld]. Puede elegir cualquier número para este punto (puede ser más fácil comenzar con 1), pero el número debe ser único y no puede coincidir con ningún otro identificador de servidor en su grupo de replicación. Voy a seguir adelante y llamar a este 1.

Asegúrese de que esta línea no se ha comentado.

server-id               = 1

Vaya a la línea log_bin. Aquí es donde se guardan los detalles reales de la replicación. El esclavo va a copiar todos los cambios que están registrados en el registro. Para este paso simplemente necesitamos descomentar la línea que se refiere a log_bin:

log_bin                 = /var/log/mysql/mysql-bin.log

Finalmente, necesitamos designar la base de datos que se replicará en el servidor esclavo. Puede incluir más de una base de datos repitiendo esta línea para todas las bases de datos que necesitará.

binlog_do_db            = newdatabase

Después de realizar todos los cambios, continúe, guarde y salga del archivo de configuración.

Actualizar MySQL.

sudo service mysql restart

Los próximos pasos tendrán lugar en el shell de MySQL, en sí.

Abra el shell de MySQL.

mysql -u root -p

Necesitamos otorgar privilegios al esclavo. Puede usar esta línea para nombrar a su esclavo y configurar su contraseña. El comando debe estar en este formato:

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

Seguimos con:

FLUSH PRIVILEGES;

Luego, para llevar a cabo la tarea tendrá que abrir una nueva ventana o pestaña, sobre la que ya está utilizando.

En su ficha actual cambie a "newdatabase".

USE newdatabase;

A continuación, bloquee la base de datos para evitar nuevos cambios:

FLUSH TABLES WITH READ LOCK;

A continuación, escriba:

SHOW MASTER STATUS;

Verá una tabla que debería verse así:

mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      107 | newdatabase  |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

Esta es la posición desde la cual la base de datos esclavo comenzará a replicarse. Registre estos números, ellos podrán útilizarse más tarde.

Si realiza nuevos cambios en la misma ventana, la base de datos se desbloqueará automáticamente. Por esta razón, debe abrir la nueva pestaña o ventana y continuar con los siguientes pasos.

Procediendo con la base de datos todavía bloqueada puede exportar su base de datos con Mysqldump en la nueva ventana (asegúrese de que está escribiendo este comando en el shell bash, no en MySQL).

mysqldump -u root -p --opt newdatabase > newdatabase.sql

Ahora, regresando a su ventana original, desbloquee las bases de datos (haciéndolas escritura de nuevo). Termine por salir de la shell.

UNLOCK TABLES;
QUIT;

Ahora ya está todo hecho con la configuración de la base de datos maestra.

Paso Dos: Configurar la Base de Datos Esclava

Una vez que haya configurado la base de datos maestra. Puede dejarlo de lado durante un tiempo, y ahora comenzaremos a configurar la base de datos de esclavos.

Inicie sesión en su servidor esclavo, abra el shell de MySQL y cree la nueva base de datos que va a replicar desde el maestro (luego salir):

CREATE DATABASE newdatabase;
EXIT;

Es importe la base de datos que exportó previamente desde la base de datos maestra.

mysql -u root -p newdatabase < /path/to/newdatabase.sql

Ahora necesitamos configurar la configuración esclava de la misma manera que lo hicimos con el maestro:

sudo nano /etc/mysql/my.cnf

Tenemos que asegurarnos de que tenemos algunas cosas configuradas en esta configuración. El primero es el servidor-id. Este número, como se mencionó anteriormente, debe ser único. Dado que se establece en el valor predeterminado (todavía 1), asegúrese de cambiar es algo diferente.

server-id               = 2

Después de eso, asegúrese de que su tiene los siguientes tres criterios debidamente llenos:

relay-log               = /var/log/mysql/mysql-relay-bin.log
log_bin                 = /var/log/mysql/mysql-bin.log
binlog_do_db            = newdatabase

Deberá agregar en la línea de relé-registro: no está allí por defecto. Una vez que haya realizado todos los cambios necesarios, guarde y salga del archivo de configuración del esclavo.

Reinicie MySQL una vez más:

sudo service mysql restart

El siguiente paso es habilitar la replicación dentro del shell de MySQL.

Abra de nuevo el shell de MySQL y escriba los siguientes detalles, reemplazando los valores para que coincidan con su información:

CHANGE MASTER TO MASTER_HOST='12.34.56.789',MASTER_USER='slave_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=  107;

Este comando realiza varias cosas al mismo tiempo:

  1. Designa al servidor actual como esclavo de nuestro servidor maestro.
  2. Proporciona al servidor las credenciales de inicio de sesión correctas
  3. Por último, permite al servidor esclavo saber dónde comenzar a replicar; El archivo de registro maestro y la posición de registro provienen de los números que anotó anteriormente.

Con eso, usted ha configurado un servidor maestro y esclavo.

Activar el servidor esclavo:

START SLAVE;

Podrá ver los detalles de la replicación esclava escribiendo este comando. El \ G reorganiza el texto para hacerlo más legible.

SHOW SLAVE STATUS\G

Si hay un problema en la conexión, puede intentar iniciar esclavo con un comando para omitirlo:

SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; SLAVE START; 

Bien, todo listo.

La replicación de MySQL tiene muchas opciones diferentes, y este tutorial sólo fue una muy breve descripción.

Fuente. Artículo traducido y con muy ligeras modificaciones de: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-debian

Sobre el Autor
Pipe Peña
Author: Pipe Peña
Soy un loco enamorado de la vida. Licenciado en Ciencias Sociales y Humanas, amante de la tecnología e informática y la astrofísica. Me gusta crear e investigar proyectos que enriquezcan la construcción y desarrollo del conocimiento individual y colectivo. Me encantan los videojuegos, el cine, la química, matemáticas, la física cuántica y la música, en donde actualmente soy compositor. Me baso en la idea que toma Baruch Spinoza sobre Dios.

ImprimirCorreo electrónico

Donaciones - Tutoriales y VideoTutoriales Fututel

Dona si crees que lo merecemos. Ésto nos ayudará para seguir publicando y hacerte la vida más fácil :)

Cantidad: