MySQL

MySQL主从复制-异步复制

陈曦
复制是MySQL数据库提供的一种高可用高性能解决方案,一般用来建立大型应用(《MySQL技术内幕:innodb存储引擎(第二版)》)。 常见的主从复制方案有:异步复制、半同步复制、组复制。本文主要介绍传统的异步复制方式。 1. 环境准备 操作系统:macOS Big Sur 11.0.1 MySQL: mysql 5.7 为方便操作,这里使用docker来进行配置。配置3个MySQL实例,用于后续进行主从复制实验(1主2从)。 1.1. 拉取MySQL 5.7的镜像 docker pull mysql:5.7 1.2. 启动MySQL实例 启动 master 实例 docker run -d \ -p 3307:3306 \ -e MYSQL_ROOT_PASSWORD=123456 \ -e TZ=Asia/Shanghai \ -v ~/tools/mysql/master/data:/var/lib/mysql \ -v ~/tools/mysql/master/conf.d:/etc/mysql/conf.d \ --name mysql-5.7-master \ mysql:5.7 将MySQL数据文件挂在到本地目录 ~/tools/mysql/master/data,这样数据文件就可以直接在本地查看。 将MySQL配置文件目录挂在到本地目录 ~/tools/mysql/master/conf.d,这样就可以在本地自定义配置文件,而不需要每次修改配置都登入容器内部。 自定义配置文件 my-custom.cnf 如下, [mysqld] server_id = 1 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES log_bin=mysql-bin binlog-format=Row 启动 slave01 实例 docker run -d \ -p 3317:3306 \ -e MYSQL_ROOT_PASSWORD=123456 \ -e TZ=Asia/Shanghai \ -v ~/tools/mysql/slave01/data:/var/lib/mysql \ -v ~/tools/mysql/slave01/conf.