1、创建保存主库数据的数据目录
mkdir -p /data/mysql/master01 mkdir conf data chmod 777 * -R
2、编辑配置文件
cd conf vi my.cnf
输入以下内容:
[mysqld] # 开启二进制日志 log-bin=mysql-bin # 服务id不能重复 server-id=1
3、创建容器
docker使用yum安装的时候提示安装不起,ping不通www.baidu.com,解决方法:配置dns后能ping通www.baidu.com且yum安装正常
docker create --name percona-master01 -v /data/mysql/master01/data:/var/lib/mysql -v /data/mysql/master01/conf:/etc/my.cnf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 percona:5.7.23
4、启动容器
docker start percona-master01 && docker logs -f percona-master01
5、创建同步账户及授权(navicat里面)
create user 'rzf-name'@'%' IDENTIFIED by 'rzf-pwd'; grant replication SLAVE on *.* to 'rzf-name'@'%'; flush PRIVILEGES; # 如果出现 [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and错误 # 解决方案:在my.cnf配置文件中设置 sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BYZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
6、查看master状态
show master status;
# 查看二进制日志相关的配置项 show global VARIABLES LIKE 'binlog%'; # 查看server相关的配置项 show global VARIABLES LIKE 'server%';
1、创建保存从库数据库数据的目录
mkdir -p /data/mysql/slave01 cd /data/mysql/slave01 mkdir conf data chmod 777 * -R
2、创建配置文件
cd conf vim my.cnf
输入如下内容:
[mysqld] # 服务id,同一个集群内不可重复 server-id=2 sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ZUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
3、创建容器
docker create --name percona-slave01 -v /data/mysql/slave01/data/:/var/lib/mysql -v /data/mysql/slave01/conf/:/etc/my.cnf.d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 percona:5.7.23
4、启动容器
docker start percona-slave01 && docker logs -f percona-slave01
5、配置主从关系(master_log_file和master_log_pos与之前的master节点信息相对应)
5.1、在从库里面执行如下命令:
# (其中master_log_file为show master status命令结果集中master_log_file,Position为master_log_pos) CHANGE MASTER TO master_host='192.168.2.200', master_user='rzf-name', master_password='rzf-pwd', master_port=3306, master_log_file='mysql-bin.000004', master_log_pos=737;
6、启动slave
start slave; # 查看状态 show slave status;
7、查看状态
1、默认机制ROW
# 可以使用如下命令查看复制模式 show GLOBAL VARIABLES like 'binlog%';
2、修改binlog_format
在master节点的配置文件内添加如下内容即可:
binlog_format=MIXED # (ROW默认,STATEMENT,MIXED建议) # 重启master节点。 # 再次查看 show global variables like 'binlog%';
模式释义: