Sincronización maestro-esclavo MySQL 8.0, Linux y Windows

Sincronización maestro-esclavo MySQL

Mi configuración: MySQL 8.0, Centos 7 (maestro), Windows 10 (esclavo)

Paso 1: compruebe si binlog está habilitado

A partir de MySQL8.0, binlog está habilitado de forma predeterminada, si es la versión 5.7, también se puede configurar y habilitar en my.cnf/my.ini.

show variables like '%log_bin%';

el anfitrión

Esclavo

inserte la descripción de la imagen aquí

Paso 2: configurar el archivo de configuración

el anfitrión

El archivo de configuración de MySQL en Linux está en /etc/my.cnf de forma predeterminada y se puede editar con el comando vim.

vim /etc/my.cnf

Configure la información en [mysqld]. Tenga en cuenta que está en [mysqld]. Si se configura en otros lugares, no se leerá.

El binlog-do-db aquí no se puede configurar, según las necesidades.

Esclavo

El archivo de configuración de MySQL en Windows está en C:\Program Files\MySQL de forma predeterminada, abra my.ini para editarlo

De manera similar, configure la información en [mysqld]

inserte la descripción de la imagen aquí

Paso 3: reinicia el servicio

el anfitrión

Comando de reinicio de MySQL en Linux

systemctl restart mysqld.service

inserte la descripción de la imagen aquí

Esclavo

Abra cmd, primero ingrese net stop mysql y luego ingrese net start mysql

net stop mysql
net start mysql

inserte la descripción de la imagen aquí

Paso 4: configurar una cuenta

el anfitrión

Por lo general, en el escenario empresarial de sincronización maestro-esclavo, se proporciona una cuenta a la base de datos esclava. Normalmente, no se proporciona la cuenta raíz. Aquí usaré la cuenta zhku que creé antes para demostración (también puede usar la cuenta raíz, pero no es recomendable).

Primero verifique si la cuenta tiene el permiso de sincronización maestro-esclavo

select Repl_slave_priv, Repl_client_priv from mysql.user where user = 'zhku';

inserte la descripción de la imagen aquí

Se nota que no se concede el permiso.

conceder permiso

grant replication slave, replication client on *.* to 'zhku'@'%';

Paso cinco: verificar el estado

el anfitrión

Ver estado maestro
show master status;

inserte la descripción de la imagen aquí

archivo: indica desde qué archivo comienza la información del registro bin sincronizado;

posición: Indica dónde comenzar desde el archivo;

binlog_do_db: indica qué biblioteca sincronizar (si no está configurada en el archivo de configuración, está vacía)

Esclavo

Configure la dirección IP del servidor maestro en el esclavo
change master to master_host='120.***.***.110',master_port=3306,master_user='zhku',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=156;

Aquí, configure master_host como la dirección IP del host, master_user como el usuario de inicio de sesión, como zhku, y establezca master_password como contraseña, aquí mi contraseña es 123456, master_log_file es el archivo para ver el estado del maestro en el host y master_log_pos es la posición vista en el host.

esclavo abierto
start slave;
Consultar el estado del esclavo
show slave status;

inserte la descripción de la imagen aquí

Hay demasiados resultados, así que los mostraré en columnas para que se vean mejor.

Puede ver los dos parámetros más críticos, los dos últimos, Slave_IO_Running y Slave_SQL_Running, mostrar Sí significa que la sincronización maestro-esclavo se logró con éxito, y el primer Slave_IO_State también muestra que está esperando que el host envíe información del evento.

¡Hasta ahora la configuración es exitosa!

problemas encontrados

El primer problema: el inicio falla al reiniciar el servicio en el tercer paso

La razón es que hay un problema con el archivo de configuración y es necesario verificar si el archivo de configuración está configurado correctamente, como la ortografía de las palabras, si existe la base de datos, etc.

El segundo problema: cuando la máquina esclava verifica el estado del esclavo en el quinto paso, Slave_IO_Running muestra Conectando

inserte la descripción de la imagen aquí

Motivo: puede continuar viendo las siguientes columnas y encontrar la columna Last_IO_Error

inserte la descripción de la imagen aquí

Al ver el informe de errores en el interior se muestra el error informado del complemento de autenticación 'caching_sha2_password': La autenticación requiere una conexión segura.

inserte la descripción de la imagen aquí

Ir a consulta de host

inserte la descripción de la imagen aquí

Se descubre que el valor del complemento de la cuenta zhku es diferente del de la cuenta raíz. Debe modificar el valor del complemento de la cuenta zhku a mysql_native_password (use la declaración de actualización, que no se describirá aquí). Después de la modificación, Se mostrarán dos SÍ con éxito.

También es posible que el mensaje de error aquí no sea el problema. Esta columna muestra que hay tres problemas de conexión principales, uno es un problema de red, el otro es una contraseña de cuenta incorrecta y el otro es una configuración incorrecta de master_log_file y master_log_pos. . Si hay un problema de red, puede verificar si el firewall está habilitado. El autor está usando el servidor Alibaba Cloud aquí. El grupo de seguridad está habilitado en el servidor y el puerto del firewall está habilitado en Centos, por lo que se puede acceder. Si es una máquina virtual, depende del modo puente, repita.

Abra y cierre en Linux, consulte el enlace de la publicación del blog del firewall:

https://blog.csdn.net/weixin_45930241/article/details/123219592

El tercer problema: cuando la máquina esclava verifica el estado del esclavo en el quinto paso, Slave_IO_Running muestra No

inserte la descripción de la imagen aquí

Igual que la segunda pregunta, consulte la siguiente columna de información para ver cuál es el motivo del error.

inserte la descripción de la imagen aquí

Se encontró que el nombre del archivo para mostrar era inconsistente

show master status;

Utilice el comando show master status en la máquina esclava para ver

inserte la descripción de la imagen aquí

Utilice el comando show master status en el host para ver

inserte la descripción de la imagen aquí

La comparación encontró que Archivo y Posición son inconsistentes.

Use el comando stop esclavo para detener el esclavo de la máquina esclava, regrese al paso 5, use el comando cambiar maestro para configurar nuevamente y finalmente inicie el esclavo nuevamente. Si aún falla, verifique si los archivos de configuración de las dos máquinas han sido modificados correctamente.

stop slave;

Supongo que te gusta

Origin blog.csdn.net/weixin_45930241/article/details/124418655
Recomendado
Clasificación