Introducción al principio de replicación maestro-esclavo:
- Después de enviar los datos del servidor maestro, los datos se escribirán en el registro binario
- El servidor esclavo monitorea el registro de registro binario a través del subproceso de E / S. Si el registro cambia, leerá y escribirá el contenido en el registro de relé (registro de relé).
- El subproceso de retransmisión supervisa el registro de retransmisión y, si el registro cambia, la operación de escritura incremental del registro se ejecutará una vez y se escribirá en el archivo de datos.
Planificación de hardware (máquina virtual)
Nombre de la CPU |
La S |
IP |
utilizar |
Observaciones |
CentOS 7_107 |
Cent OS7 |
1 92.168.1.107 |
M aster / escribir |
Mysql 8 |
CentOS 7_108 |
Cent OS7 |
1 92.168.1.108 |
Esclavo / lectura |
Mysql 8 |
CentOS 7_109 |
Cent OS7 |
1 92.168.1.109 |
Esclavo / lectura |
Mysql 8 |
Cree tres máquinas virtuales, una maestra y dos esclavas.
Los pasos de implementación específicos de la replicación maestro-esclavo:
- Configuración del servidor maestro maestro
- Modificar my.cnf
vi /etc/my.cnf
#Habilitar archivos binarios
log-bin = mysql-bin
# Establezca la ID única del servidor, que se utiliza para distinguir el maestro del servidor.
id-servidor = 107
- Reinicie el servicio Mysql
systemctl restart mysqld
- Inicie sesión en Mysql para autorizar el servidor esclavo
mysql -uroot -p
Ingrese la contraseña de mysql y presione Enter para ingresar a la interfaz de mysql
- Cree una cuenta en la biblioteca maestra con permisos de esclavo de replicación y proporcione a la biblioteca esclava acceso a registros binarios.
CREATE USER 'sluser'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'sluser'@'%';
- Actualizar permisos
flush privileges;
- Ver estado de maestro
show master status;
2.S Lave de la configuración del servidor
Los servidores 108 y 109 son servidores esclavos, a continuación solo se muestra la configuración de los servidores esclavos del 108. Los métodos de configuración del 109 y 108 son los mismos, por lo que no los repetiremos aquí.
- Modificar my.cnf
vi /etc/my.cnf
Agrega el siguiente contenido
id-servidor = 108
replay-log = mysql-bin
- Inicie sesión en mysql y configure el servidor esclavo
Configure el servidor esclavo para monitorear el servidor maestro
CHANGE MASTER TO MASTER_HOST='192.168.1.107',MASTER_USER='sluser',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1707;
Descripción:
MASTER_HOST: ip maestra o ip virtual o nombre de dominio
MASTER_USER: el nombre de la cuenta de inicio de sesión creada previamente en el maestro
MASTER_PASSWORD: la contraseña de la cuenta de inicio de sesión creada
MASTER_LOG_FILE: archivo maestro 的
MASTER_LOG_POS : posición de maestro 的
- Iniciar la función de copia desde el servidor
start slave;
- Ver el estado del servidor esclavo
show slave status \G
Si Slave_IO_Running: Sí
Slave_SQL_Running: Sí, lo que indica que nuestro servidor esclavo está configurado correctamente y que se ha completado la configuración de replicación maestro-esclavo.
3. Pruebe la función de replicación maestro-esclavo
- El servidor principal crea una base de datos y agrega la tabla t_user
create database testdb;
use testdb;
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`age` int(11) NOT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
INSERT INTO `t_user` VALUES (1, 'test', 25);
- Ver la base de datos desde el servidor
show databases;
use testdb;
show tables;
select * from t_user;
Puede ver que las tablas creadas en el servidor maestro y los datos escritos también se pueden consultar en el servidor esclavo, lo que indica que nuestra configuración de replicación maestro-esclavo es exitosa.