当前位置:   article > 正文

Docker(九):MySQL主从复制搭建

Docker(九):MySQL主从复制搭建

一:master

1.1 /mydata/mysql-master/conf/my.conf

[mysqld]
#同一局域网需要唯一
server_id=101
# 不需要同步的数据库
binlog-ignore-db=mysql
# 开启二进制日志
log-bin=mall-mysql-bin
# 二进制日志使用内存大小
binlog_cache_size=1M
# 二进制日志格式
binlog_format=mixed
# 二进制日志清理时间,默认0不自动清理
expire_log_days=7
# 跳过主从复制中遇到的所有错误或者指定类型的错误,避免slave短复制中断
# 1062指主键重复
slave_skip_errors=1062
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

1.2 启动MySQL Master

docker run -p 3307:3306
	--name mysql-master
	-v /mydata/mysql-master/log:/var/log/mysql
	-v /mydata/mysql-master/data:/var/lib/mysql
	-v /mydata/mysql-master/conf:/etc/mysql
	-e MYSQL_ROOT_PASSWORD=123456
	-d mysql:5.7

# 查看启动是否成功
docker ps
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

1.3 创建用户和授权

docker exec -it mysql-master /bin/bash

create user 'slave'@'%' identified by '123456';
grant replication slave, replication client on *.* to 'slave'@'%';
  • 1
  • 2
  • 3
  • 4

二:salve

2.1 /mydata/mysql-slave/conf/my.conf

[mysqld]
#同一局域网需要唯一
server_id=102
# 不需要同步的数据库
binlog-ignore-db=mysql
# 开启二进制日志
log-bin=mall-mysql-slave1-bin
# 二进制日志使用内存大小
binlog_cache_size=1M
# 二进制日志格式
binlog_format=mixed
# 二进制日志清理时间,默认0不自动清理
expire_log_days=7
# 跳过主从复制中遇到的所有错误或者指定类型的错误,避免slave短复制中断
# 1062指主键重复
slave_skip_errors=1062

# 配置中继日志
relay_log=mall-mysql-relay-bin
# slave将复制事件写进自己的二进制日志
log_slave_updates=1
# 只读权限
read_only=1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

2.2 启动MySQL slave

docker run -p 3308:3306
	--name mysql-slave
	-v /mydata/mysql-slave/log:/var/log/mysql
	-v /mydata/mysql-slave/data:/var/lib/mysql
	-v /mydata/mysql-slave/conf:/etc/mysql
	-e MYSQL_ROOT_PASSWORD=123456
	-d mysql:5.7

docker ps
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2.3 show master status

docker exec -it mysql-master /bin/bash
mysql -u root -p

# 查看binlog的File、Position
mysql> show master status;
  • 1
  • 2
  • 3
  • 4
  • 5

2.4 主从配置

从服务器配置主从复制。

docker exec -it mysql-slave /bin/bash
mysql -u root -p

mysql> change master to master_host='宿主机IP', master_user='slave', master_password='123456', master_port=3307, master_log_file='mall-mysql-bin.000001', master_log_pos=617, master_connect_retry=30;

mysql> start slave;

# 查看主从同步状态,查看Slave_IO_Running: Yes 表示开始同步
mysql> show slave status \G;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2.5 test

在master上操作数据库,然后去从数据库中确认是否同步。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/450566
推荐阅读
相关标签
  

闽ICP备14008679号