赞
踩
[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
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
docker exec -it mysql-master /bin/bash
create user 'slave'@'%' identified by '123456';
grant replication slave, replication client on *.* to 'slave'@'%';
[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
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
docker exec -it mysql-master /bin/bash
mysql -u root -p
# 查看binlog的File、Position
mysql> show master status;
从服务器配置主从复制。
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;
在master上操作数据库,然后去从数据库中确认是否同步。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。