mysql 主从复制搭建(基于docker)
1、准备两个mysql容器(lsy-mysql-master 和 lsy-mysql-slave),并把配置挂载到宿主机
1、创建一个临时的docker容器,把mysql配置拷贝到宿主机;这个命令可以自动去pull镜像 docker run -d --name lsy-mysql -p 13306:3306 -e MYSQL_ROOT_PASSWORD=root mysql 2、容器起来之后,用docker cp命令拷贝配置文件到宿主机 docker cp lsy-mysql:/etc/mysql/my.cnf /root/mysql-master-slave-conf/ 3、删除这个临时的容器 docker stop lsy-mysql docker rm lsy-mysql 4、进入/root/mysql-master-slave-conf/目录,根据拷贝的my.cnf创建两个配置master.cnf 和 slave.cnf cd /root/mysql-master-slave-conf cp my.cnf master.cnf cp my.cnf slave.cnf
5、配置 master.cnf 配置,在最下方加上如下配置
# master-conf
server-id=100
log_bin=mysql-bin
6、配置 slave.cnf 配置,在最下方加上如下配置
# slave conf
server-id=101
7、根据这两个配置分别启动主从mysql容器。端口分别是 主13306,从13307
docker run -d --name lsy-mysql-master -p 13306:3306 -e MYSQL_ROOT_PASSWORD=root -v /root/mysql-master-slave-conf/master.cnf:/etc/mysql/my.cnf mysql
docker run -d --name lsy-mysql-slave -p 13307:3306 -e MYSQL_ROOT_PASSWORD=root -v /root/mysql-master-slave-conf/slave.cnf:/etc/mysql/my.cnf mysql
2、查看master的状态
用连接工具或者进入master容器的mysql命令行,执行 SHOW MASTER STATUS; 这两个数据后面要用到

3、配置slave连接master的信息
用连接工具或者进入slave容器的mysql命令行,执行
change master to master_host='192.168.5.134', master_port=13306,master_user='root', master_password='root',master_log_file='mysql-bin.000002', master_log_pos=322;
master_host:主机地址
master_port:主机端口
master_user:访问主机的用户名,也可以重新创建一个
master_log_file:刚才查询master节点返回的 File 字段内容,保存的二进制文件
master_log_pos: 日志文件的位置
![]()
4、查看slave的配置信息,这里我尝试在navicat中查看,但是一直不能格式化。所以就在slave容器里边进行了查看。
show slave status\G;

Slave_IO_Running 代表的是IO线程,负责获取master的binlog日志文件,并保存的自身的relay log。
Slave_SQL_Running 代表的是读取relay log的线程,负责将保存的日志放到mysql中执行。
5、然后在master上进行操作,创建库、表、新增删除修改数据,都可以同步到slave数据库了

浙公网安备 33010602011771号