Linux MySQL sincronización maestro-esclavo la configuración detallada

Linux MySQL sincronización maestro-esclavo la configuración detallada

1. premisa

Prepare dos servidores, un servidor primario (maestro), el otro desde el servidor (esclavo), y luego asegurarse de que el Maestro y la versión Esclavo Maestro a la misma y no puede ser superior a la versión auxiliar, por lo general es prudente versión el formato mismo porque binlog (log binario) puede ser diferente entre diferentes versiones de MySQL, con el tiempo como resultado de sincronización anormal.

Presentado por primera vez aquí, nos confirma la siguiente información acerca de los dos servidores:

  • servidor maestro (master)
IP:10.16.195.49
系统:Linux(redhat centos7 64)
mysql版本:8.0.17
同步数据库:model_slave
同步帐号:model_slave
同步密码:slave123
  • Desde el servidor (esclavo)
IP:10.16.195.50
系统:Linux(redhat centos7 64)
mysql版本:8.0.17
同步数据库:model_slave

Configuración del servidor 2.master

1. Modificar el archivo de configuración del servidor principal

sudo vim /etc/my.cnf

[mysqld]
# 新增如下
server-id=1
log_bin=/data/mysql/mysql-bin.log
expire_logs_days=10
max_binlog_size=100M
binlog_do_db=myslave  # 如果需要同时同步多个数据库,请另起一行设置binlog_do_db=需要同步的数据库名称
binlog_ignore_db=mysql  # 不想同步的数据库

2. Guardar la salida, reinicie el servicio

service mysql restart

Si no pudo comenzar, no se pudo iniciar mirando el registro de MySQL, en busca de soluciones a partir de los contenidos del registro.

cat /data/mysql/mysql.log | tail -30  

3. Comprobar y recordar el nombre binario maestro actual y el desplazamiento.

El propósito de esta operación es partir de la base de datos, a partir de este punto para iniciar la recuperación de datos.

mysql> show master status;
+---------------+----------+--------------+------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| mysql-bin.000002 |     155 | model_slave         |mysql                  |
+---------------+----------+--------------+------------------+
1 row in set (0.00 sec)

Configuración del servidor 3.slave

1. modificar la configuración desde el servidor

sudo vim /etc/my.cnf

[mysqld]
server-id=2
master-host=192.168.8.10
master-user=rep1
master-password=test123456
master-port=3306
replicate-do-db=cmdb

2. Reiniciar en el servidor

service mysql restart

En este momento, dado: mysqld: desconocidos variables '= master-anfitrionas

La razón es mysql5.5 + versión de la replicación maestro-esclavo no admite estas variables, es necesario utilizar el conjunto de comandos de la biblioteca:

mysql> CHANGE MASTER TO MASTER_HOST='192.168.8.10',
  MASTER_PORT=3306,
  MASTER_USER='rep1',
  MASTER_PASSWORD='test123456',
  MASTER_LOG_FILE='mysql-bin.000002',
  MASTER_LOG_POS=155;  # 后面两个参数的值与主库保持一致

Nota, id_servidor todavía tiene que ser configurado en el archivo de configuración, o la voluntad y el acuerdo marco no se puede abrir desde el maestro.

3. esclavo de inicio

mysql> slave start;
Query OK, 0 rows affected (0.04 sec)

4. Comprobar el estado de esclavo

show slave status\G;

Si estos es sí, significa el éxito:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

imagen-20200317204300268

3. Sincronizar los datos existentes en la biblioteca principal de la biblioteca

operaciones de la biblioteca principales:

1. Detener la actualización de datos de repositorio maestro

mysql>flush tables with read lock;

2. recientemente inaugurado terminal, generar una copia de seguridad (exportar la base de datos) de la base de datos primaria

  • --master-datos: volcado asegurará que cuando el nombre del registro y el valor de desplazamiento binlog

  • --lock-all-tables: Para no hay otros nuevos datos en los datos en el momento de la exportación, para garantizar la coherencia

mysqldump –master-data=1 –lock-all-tables=true -uroot -pmysql123 model_slave > /home/model_slave_bak_20200317.sql

3. Los archivos de copia de seguridad a la biblioteca

scp cmdb.sql [email protected]:/home/

4, desbloquear la biblioteca principal

mysql>unlock tables;

De las operaciones de la biblioteca:

1. Detener el esclavo de la biblioteca

mysql>slave stop;

2. Crear una nueva base de datos model_slave

mysql> create database model_slave charset=utf8;

3, los datos de importación

[gz_admin@ops-dev ~]$ mysql -uroot -pmysql123 model_slave</home/model_slave_bak_20200317.sql

o

mysql> use myslave;
mysql> source /home/model_slave_bak_20200317.sql;

4, la vista desde la base de datos de la biblioteca y los datos existentes

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| model_slave        |
| mysql              |
| performance_schema |
| test               |
+--------------------+

4. La sincronización de prueba

1. Insertar un conjunto de datos de maestro

mysql> use model_slave;
mysql> INSERT INTO users(id,name,info) VALUES(1, "jack","handsom");

2. Después de la inserción exitosa, espere un momento, se puede ver el mismo registro en el servidor esclavo.

Sin éxito, a continuación, comprobar cuidadosamente algunos archivos de configuración.

3. Compruebe la información actual estado de sincronización y los valores de desplazamiento como servidor esclavo

more /var/lib/mysql/master.info

Puede comprobar el esclavo ejecuta el archivo binlog

more /var/lib/mysql/relay-log.info

Supongo que te gusta

Origin www.cnblogs.com/ryxiong-blog/p/12513383.html
Recomendado
Clasificación