提示:前要开启
docker不知道移步docker分类入门
docker pull percona:5.7.23(percona:5.7.23)Orcal 发布的mysql版本 理解为mysql的一个分支就好了
docker images mkdir /data/mysql/conf -p
mkdir /data/mysql/data
##返回根目录 并对data文件夹加入写权限
chmod 777 data -R
ll目录这样显示
my.cnf,并输入#建议将注释删除
[mysqld]
#开启二进制目录文件
log-bin=mysql-bin
#服务id不可重复
server-id=1
#解决打印台报错
sql_mode=‘STRICT_TRANS_TABLES,NO‘
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=root percona:5.7.23 注意端口号映射
-p 3306:3306(前面为机器端口号,后面为docker端口号)
docker start percona-master01 && docker logs -f percona-master01
--用户名@mysql位置地址
CREATE USER ‘zhy‘@‘%t‘IDENTIFIED BY ‘zhy‘;
grant replication slave on *.* to ‘zhy‘@‘%‘;
FLUSH PRIVILEGES;
Navicat 窗口报错解决
sql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION‘
docker 重新启动 docker restart 容器名 (后面可选)&& docker docker logs -f 容器名
Navicat show master status; 查看master状态

日志文件 与 起始位置
查看二进制日志和文件 show GLOBAL VARIABLES like ‘binlog%‘;

查看server相关的配置信息 show GLOBAL VARIABLES LIKE ‘server%‘;

前面配置过server-id为1 这里看到说明配置文件生效了
/data/mysql/slave01 在下面创建 conf、data两个目录 用来映射docker目录chmod 777 *-R 意义在于任意用户可以写##内容如下
[mysqld]
log-bin=mysql-bin
server-id=2 ##注意从节点不能和主节点id相同
sql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION‘
docker create --name percona-slave01 -v /data/mysql/slave01/data/:/var/lib/mysql -v /data/mysql/slave01/conf:/etc/my.cnf.d -p 3317:3306 -e MYSQL_ROOT_PASSWORD=root percona:5.7.23docker start percona-slave01 && docker logs -f percona-slave01CHANGE MASTER TO
master_host=‘hadoop102‘,
master_user=‘zhy‘,
master_password=‘zhy‘,
master_port=3306,
--与上文种主节点1的 状态查询文件与位置一致
master_log_file=‘mysql-bin.000005‘,
master_log_pos=154;

START SLAVE; 可以实现主从复制修改从服务配置 需要停止服务
stop slave;
原文:https://www.cnblogs.com/zhy-god/p/15138661.html