安装mysql主从复制原理:
主从复制就是让一个数据库(主库)把数据变更自动同步到其他数据库(从库)的过程。
主库负责处理写操作,每次数据更新时,会将这些变更记录成日志;从库连接到主库,获取这些日志,并在本地重放相同的操作,从而保持数据一致。
这样实现了读写分离和备份。
主从搭建步骤:
步骤1.新建主服务器容器实例3307
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=root \ -d mysgl:5.7
再次带大家认识一遍命令:
1、3307映射到3306(左边为宿主机,右边docker真正跑起来容器内部的端口,名字为mysql-master
2、三个-v开头,容器数据卷,容器、数据、配置
3、宿主机上对配置文件的修改可以同步进mysql docker容器实例,所以-e是环境,后面是密码和版本)

直接在tmp路径下执行此命令。
步骤2.进入/mydata/mysql-master/conf目录下新建my.cnf

Vim内容:[mysqld]
#设置server_id,同一局域网中需要唯一 server_id=101 #指定不需要同步的数据库名称 binlog-ignore-db=mysql #开启二进制日志功能 log-bin=mall-mysql-bin ##设置二进制日志使用内存大小(事务) binlog_cache_size=1M #设置使用的二进制日志格式(mixed,statement,row) binlog_format=mixed #二进制日志过期清理时间。默认值为0,表示不自动清理。 expire_logs_days=7 ##跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。 ##如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致 slave_skip_errors=1062


步骤3.修改完配置后重启master实例
docker restart mysql-master

步骤4.进入mysql-master容器
docker exec -it mysql-master /bin/bash
mysql -uroot -proot


步骤5.master容器实例内创建数据同步用户
CREATE USER 'slave'@'%' IDENTIFIED BY '123456'; GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.*TO 'slave'@'%';

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程