Construcción de datos de sincronización maestro-esclavo de MySQL (un maestro y un esclavo)

1. Configuración de [Biblioteca principal]
1. Modificación de configuración de [Biblioteca principal]

######################################
# Binary Logging.
# log-bin 二进制日志
log-bin=mysql-bin
#只保留7天的二进制日志,以防磁盘被日志占满
expire-logs-days=7
#不备份的数据库
binlog-ignore-db  = mysql       
binlog-ignore-db  = information_schema
binlog-ignore-db  = performation_schema
binlog-ignore-db  = sys
#需要做复制的数据库名,如果有多个,复制binlog-do-db即可
binlog-do-db      = test 
#######################################

2. Crear y autorizar usuarios
: Cree usuarios esclavos para la replicación sincrónica desde la base de datos y otorgue permisos para la replicación y el acceso sincrónico.

mysql> CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
Query OK, 0 rows affected (0.00 sec)

3. Ver información
3.1 Información del usuario

SELECT * FROM mysql.user;

Insertar descripción de la imagen aquí
3. 2 estado log_bin
Insertar descripción de la imagen aquí
3. 3 Ver estado maestro
Insertar descripción de la imagen aquí
2. Configuración de [biblioteca esclava]
1. Configuración de la biblioteca esclava
Insertar descripción de la imagen aquí
2. Configurar la información de la biblioteca maestra desde la biblioteca esclava

Insertar descripción de la imagen aquí

mysql>stop slave 
mysql>CHANGE MASTER TO MASTER_HOST='localhost',MASTER_PORT=3306,MASTER_USER='slave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000100',MASTER_LOG_POS=617;

3. Verifique el estado de sincronización.
Insertar descripción de la imagen aquí
El estado de Slave_io_status está vacío, olvídese de encender el esclavo de inicio; verifique el estado después de encenderlo.

mysql>start slave

Insertar descripción de la imagen aquí
4. Notas
Insertar descripción de la imagen aquí
4.1 La función de E/S es recuperar su binlog del puerto maestro 3306 (el contenido modificado por el maestro se escribirá en su propio binlog esperando que el esclavo se actualice) y luego se escribirá en el relé local. log y el hilo SQL es leer el registro de retransmisión local y luego convertirlo en una declaración que Mysql pueda entender, de modo que la sincronización se complete paso a paso. Cuando se encuentra una de las razones de la falla de sincronización de datos, la solución de problemas La idea es ver si estos dos valores son Sí.
Después de iniciar el esclavo, el valor SLAVE_IO_RUNNING es Sí y SLAVE_SQL_RUNNING es Sí.
4.2 Después de crear una nueva prueba de base de datos en la base de datos principal, cree una nueva tabla t_user y verifique la base de datos esclava. No se encontró ninguna base de datos nueva ni tabla nueva. Verifique mostrar el estado del esclavo; SLAVE_SQL_RUNNING es NO. Motivo: el maestro nunca sincroniza la base de datos, por lo tanto, antes de la sincronización, asegúrese de que la base de datos esclava cree manualmente la base de datos de prueba. Si SLAVE_SQL_RUNNING es NO, después de que la base de datos esclava cree una prueba de base de datos de sincronización y después de agregar datos en la base de datos maestra t_user, el La base de datos esclava no tiene datos síncronos. Por lo tanto, antes de la sincronización, cambie SLAVE_SQL_RUNNING a Sí. Puede ejecutar los siguientes tres comandos, que se pueden ejecutar repetidamente. El valor se cambia a Sí después de la ejecución repetida dos veces. La base de datos esclava crea manualmente la tabla t_user y la base de datos principal agrega datos. en t_user., la sincronización de datos desde la tabla t_user de la base de datos fue exitosa.

mysql>stop slave;
mysql>set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql>start slave;

Insertar descripción de la imagen aquí
5. Prueba sincrónica:
cree una nueva biblioteca de prueba en la biblioteca principal y la biblioteca esclava se sincronizará automáticamente.
Insertar descripción de la imagen aquí
Puede realizar la prueba creando una nueva tabla, agregando, eliminando, modificando y verificando datos. Si los datos no están sincronizados durante la prueba, use el comando show Slave Status; verifique si SLAVE_SQL_RUNNING es NO y el motivo de NO:
Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/FORLOVEHUAN/article/details/128879556
Recomendado
Clasificación