Basado ventana acoplable acumulación arquitectura de replicación MySQL maestro-esclavo

¿Por qué construir con base acoplable?

  • Los recursos limitados
  • máquina virtual creada en la configuración de la máquina que se requiere, y un paso complicado de instalar MySQL
  • Una pluralidad de recipientes se puede ejecutar en una sola máquina acoplable
  • contenedores de Docker son, IP independiente independiente, no entren en conflicto
  • Acoplable utilizar sencillos pasos para iniciar el segundo nivel en el contenedor

Estructuras desde el servidor maestro utilizando acoplable

Primer espejo cargador de muelle de tracción, que aquí utilizar la versión 5.7 de MySQL:

docker pull mysql:5.7

Esta imagen se utiliza a continuación para iniciar el recipiente, donde la necesidad de partir de dos recipientes principal independiente

Master (principal):

docker run -p 3339:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

Esclavo (desde):

docker run -p 3340:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

Mapa extranjera Maestro del puerto es 3339, la asignación de puertos Esclavo externo es 3340. Debido a que los contenedores ventana acoplable son independientes entre sí, cada contenedor tiene su propia IP independiente, por lo que un recipiente diferente usando el mismo puerto y no entrará en conflicto. Aquí debemos tratar de puerto por defecto usar MySQL 3306, o pueden no aparecer en la edición mediante conexión IP de MySQL contenedor ventana acoplable.

Utilice docker psel comando para ver los contenedores están ejecutando:

marca

En este momento, otras herramientas se pueden utilizar para probar la conexión Navicat MySQL

marca

Configuración Master (Principal)

Por docker exec -it 627a2368c865 /bin/bashcomando Maestro en el interior del contenedor, también se puede docker exec -it mysql-master /bin/bashmandar a entrar. 627a2368c865 es el ID del contenedor, y MySQL-master es el nombre de la embarcación.

cd /etc/mysqlCambie al directorio en / etc / mysql, y luego vi my.cnfa editar my.cnf. En serán reportados a cabo este punto bash: vi: command not found, tenemos que instalar vim a sí mismos dentro del contenedor ventana acoplable. El uso apt-get install vimde comandos para instalar vim

Aparecerá las siguientes preguntas:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package vim

Ejecución apt-get update, y luego ejecuta de nuevo apt-get install vimpara instalar correctamente vim. Entonces podemos usar vim para editar my.cnf, agregue la siguiente configuración en el my.cnf:

[mysqld]
## 同一局域网内注意要唯一
server-id=100  
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin

Después de la configuración, deberá reiniciar la configuración del servicio MySQL para tener efecto. Utilice service mysql restartreinicio completo. Hará que el contenedor ventana acoplable para detener el servicio reinicio de MySQL, también tenemos que docker start mysql-masteriniciar el contenedor.

El siguiente paso se crea en la base de datos de sincronización de datos de usuario principal, el usuario concede permiso esclavo esclavo de replicación y privilegio de réplica de cliente para la sincronización primaria entre los datos de la base de datos.

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

marca

Configuración del esclavo (de)

Y la configuración de maestro (primario) como añadió el fichero de configuración my.cnf sigue el esclavo:

[mysqld]
## 设置server_id,注意要唯一
server-id=101  
## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin   
## relay_log配置中继日志
relay_log=edu-mysql-relay-bin  

Después de la configuración y la necesidad de reiniciar la operación de servicio MySQL y configuración del maestro ventana acoplable envase (primario) consistente.

Link Master (principal) y el Esclavo (de)

En el Master en el MySQL, ejecutarshow master status;

marca

Detrás se utilizará el valor de los campos de archivo y de posición, antes de que se haya completado la última operación, la necesidad de asegurar que la biblioteca maestro no puede hacer nada, si no causará un cambio de estado, los cambios en el valor de los campos de archivo y posición.

En esclavo entrar en MySQL, ejecutarchange master to master_host='172.17.0.2', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 2830, master_connect_retry=30;

Comando Descripción:

MASTER_HOST : Dirección de maestro, en referencia al contenedor IP independiente, por docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称|容器idcontenedor de consulta ip

marca

MASTER_PORT : número de puerto maestro, número de puerto se refiere a un recipiente

MASTER_USER datos de usuario para la sincronización:

master_password : se utiliza para sincronizar la contraseña del usuario

MASTER_LOG_FILE : Especifica Esclavo comenzar a copiar los datos a partir del cual archivo de registro, es decir, el valor del campo en el archivo citadas con anterioridad

MASTER_LOG_POS valor que debe comenzar la posición de lectura, es decir, los campos de posición antes mencionadas:

master_connect_retry : Si la conexión falla, intervalo de reintento, en cuestión de segundos, por defecto es de 60 segundos

Mysql esclavo se lleva a cabo en el terminal show slave status \G;para la visualización de estado de sincronización maestro-esclavo.

marca

En circunstancias normales, SlaveIORunning y SlaveSQLRunning son No, porque no hemos dado vuelta en el proceso de replicación maestro-esclavo. Use start slaveproceso de replicación maestro-esclavo abierta, y luego consultar el estado de sincronización maestro-esclavo de nuevo show slave status \G;.

marca

SlaveIORunning y SlaveSQLRunning son Sí, se ha abierto instrucciones de la copia maestra. En este punto se puede probar la sincronización de datos es satisfactoria.

Amo-esclavo de replicación de solución de problemas:

marca

Use start slaveproceso de replicación maestro-esclavo abierta, si SlaveIORunning sido la conexión, entonces la replicación maestro-esclavo se ha conectado, esta situación es causada generalmente por varias razones a continuación, podemos ser excluidos de conformidad con las puntas Last_IO_Error.

  1. No Red

    Comprobar IP, puerto

  2. contraseña incorrecta

    Compruebe si se ha creado para los usuarios de sincronización y la contraseña del usuario es correcta

  3. no pos

    Compruebe el Maestro de la Posición

Prueba de replicación maestro-esclavo

Prueba de la replicación maestro-esclavo será mucho, la más simple es crear una base de datos de Maestro, Esclavo y luego comprobar si esta base de datos.

Maestro:

marca

Esclavo:

marca

Microcanal número público:
Fuente: http://songwenjie.cnblogs.com/
Aviso: Este artículo es un resumen de los bloggers sentimiento de aprendizaje, limitados, si inapropiada, por favor, corríjanme. Si usted piensa bien, es posible que desee hacer clic en la parte inferior de la [ recomendado ] botón, gracias apoyar. Reproducido con referencia Por favor indique la fuente.
@. Publicado 04/04/2020 16:48   importación *   leer ( ... ) comentarios ( ... editar   colecciones

¿Por qué construir con base acoplable?

  • Los recursos limitados
  • máquina virtual creada en la configuración de la máquina que se requiere, y un paso complicado de instalar MySQL
  • Una pluralidad de recipientes se puede ejecutar en una sola máquina acoplable
  • contenedores de Docker son, IP independiente independiente, no entren en conflicto
  • Acoplable utilizar sencillos pasos para iniciar el segundo nivel en el contenedor

Estructuras desde el servidor maestro utilizando acoplable

Primer espejo cargador de muelle de tracción, que aquí utilizar la versión 5.7 de MySQL:

docker pull mysql:5.7

Esta imagen se utiliza a continuación para iniciar el recipiente, donde la necesidad de partir de dos recipientes principal independiente

Master (principal):

docker run -p 3339:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

Esclavo (desde):

docker run -p 3340:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

Mapa extranjera Maestro del puerto es 3339, la asignación de puertos Esclavo externo es 3340. Debido a que los contenedores ventana acoplable son independientes entre sí, cada contenedor tiene su propia IP independiente, por lo que un recipiente diferente usando el mismo puerto y no entrará en conflicto. Aquí debemos tratar de puerto por defecto usar MySQL 3306, o pueden no aparecer en la edición mediante conexión IP de MySQL contenedor ventana acoplable.

Utilice docker psel comando para ver los contenedores están ejecutando:

marca

En este momento, otras herramientas se pueden utilizar para probar la conexión Navicat MySQL

marca

Configuración Master (Principal)

Por docker exec -it 627a2368c865 /bin/bashcomando Maestro en el interior del contenedor, también se puede docker exec -it mysql-master /bin/bashmandar a entrar. 627a2368c865 es el ID del contenedor, y MySQL-master es el nombre de la embarcación.

cd /etc/mysqlCambie al directorio en / etc / mysql, y luego vi my.cnfa editar my.cnf. En serán reportados a cabo este punto bash: vi: command not found, tenemos que instalar vim a sí mismos dentro del contenedor ventana acoplable. El uso apt-get install vimde comandos para instalar vim

Aparecerá las siguientes preguntas:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package vim

Ejecución apt-get update, y luego ejecuta de nuevo apt-get install vimpara instalar correctamente vim. Entonces podemos usar vim para editar my.cnf, agregue la siguiente configuración en el my.cnf:

[mysqld]
## 同一局域网内注意要唯一
server-id=100  
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin

Después de la configuración, deberá reiniciar la configuración del servicio MySQL para tener efecto. Utilice service mysql restartreinicio completo. Hará que el contenedor ventana acoplable para detener el servicio reinicio de MySQL, también tenemos que docker start mysql-masteriniciar el contenedor.

El siguiente paso se crea en la base de datos de sincronización de datos de usuario principal, el usuario concede permiso esclavo esclavo de replicación y privilegio de réplica de cliente para la sincronización primaria entre los datos de la base de datos.

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

marca

Configuración del esclavo (de)

Y la configuración de maestro (primario) como añadió el fichero de configuración my.cnf sigue el esclavo:

[mysqld]
## 设置server_id,注意要唯一
server-id=101  
## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin   
## relay_log配置中继日志
relay_log=edu-mysql-relay-bin  

Después de la configuración y la necesidad de reiniciar la operación de servicio MySQL y configuración del maestro ventana acoplable envase (primario) consistente.

Link Master (principal) y el Esclavo (de)

En el Master en el MySQL, ejecutarshow master status;

marca

Detrás se utilizará el valor de los campos de archivo y de posición, antes de que se haya completado la última operación, la necesidad de asegurar que la biblioteca maestro no puede hacer nada, si no causará un cambio de estado, los cambios en el valor de los campos de archivo y posición.

En esclavo entrar en MySQL, ejecutarchange master to master_host='172.17.0.2', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 2830, master_connect_retry=30;

Comando Descripción:

MASTER_HOST : Dirección de maestro, en referencia al contenedor IP independiente, por docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称|容器idcontenedor de consulta ip

marca

MASTER_PORT : número de puerto maestro, número de puerto se refiere a un recipiente

MASTER_USER datos de usuario para la sincronización:

master_password : se utiliza para sincronizar la contraseña del usuario

MASTER_LOG_FILE : Especifica Esclavo comenzar a copiar los datos a partir del cual archivo de registro, es decir, el valor del campo en el archivo citadas con anterioridad

MASTER_LOG_POS valor que debe comenzar la posición de lectura, es decir, los campos de posición antes mencionadas:

master_connect_retry : Si la conexión falla, intervalo de reintento, en cuestión de segundos, por defecto es de 60 segundos

Mysql esclavo se lleva a cabo en el terminal show slave status \G;para la visualización de estado de sincronización maestro-esclavo.

marca

En circunstancias normales, SlaveIORunning y SlaveSQLRunning son No, porque no hemos dado vuelta en el proceso de replicación maestro-esclavo. Use start slaveproceso de replicación maestro-esclavo abierta, y luego consultar el estado de sincronización maestro-esclavo de nuevo show slave status \G;.

marca

SlaveIORunning y SlaveSQLRunning son Sí, se ha abierto instrucciones de la copia maestra. En este punto se puede probar la sincronización de datos es satisfactoria.

Amo-esclavo de replicación de solución de problemas:

marca

Use start slaveproceso de replicación maestro-esclavo abierta, si SlaveIORunning sido la conexión, entonces la replicación maestro-esclavo se ha conectado, esta situación es causada generalmente por varias razones a continuación, podemos ser excluidos de conformidad con las puntas Last_IO_Error.

  1. No Red

    Comprobar IP, puerto

  2. contraseña incorrecta

    Compruebe si se ha creado para los usuarios de sincronización y la contraseña del usuario es correcta

  3. no pos

    Compruebe el Maestro de la Posición

Prueba de replicación maestro-esclavo

Prueba de la replicación maestro-esclavo será mucho, la más simple es crear una base de datos de Maestro, Esclavo y luego comprobar si esta base de datos.

Maestro:

marca

Esclavo:

marca

Microcanal número público:
Fuente: http://songwenjie.cnblogs.com/
Aviso: Este artículo es un resumen de los bloggers sentimiento de aprendizaje, limitados, si inapropiada, por favor, corríjanme. Si usted piensa bien, es posible que desee hacer clic en la parte inferior de la [ recomendado ] botón, gracias apoyar. Reproducido con referencia Por favor indique la fuente.
@. Publicado 04/04/2020 16:48   importación *   leer ( ... ) comentarios ( ... editar   colecciones

Supongo que te gusta

Origin www.cnblogs.com/python001-vip/p/12632492.html
Recomendado
Clasificación