周末时间没事可做,忽然想搭建一个mysql集群,以下是单主单从数据库集群:
注意:楼主使用mysql5.7进行主从复制搭建
1.下载docker
yum install docker
*使用yum命令下载docker时请把yum升级到最新版本,升级命令:yum update(如果不升级使用docker初始化mysql容器并运行时会报错,楼主已经帮你们踩坑了)
2.启动docker
service docker start
3.使用docker下载mysql所需版本镜像
docker pull mysql (默认最新版) docker pull mysql:5.7(下载所需版本)
4.使用进行镜像并指定mysql配置文件生成容器实例
4.1创建my.cnf文件(不同的mysql容器实例建议放到不同的文件夹底下)
在my.cnf的[mysqld]底下添加
log-bin = mysql-bin
binlog_format = ROW
server-id = 1 (每个容器实例必须唯一)

4.2 使用指定配置文件生成容器实例(主机器)
docker run --name some-mysql -v /usr/local/mysql5.7/cnf/3306:/etc/mysql/conf.d -p3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7
* /usr/local/mysql5.7/cnf/3306 这个目录楼主自己的存放mysql的my.cnf配置文件目录
5.进入指定docker容器(主容器)
docker exec -it some-mysql bash // some-mysql换成自己容器的名字,也可以使用CONTAINER ID进入容器 ,可以使用docker ps -a来查看自己容器的信息
6.登录mysql
mysql -uroot -p
7.数据库配置权限并刷新权限
GRANT REPLICATION SLAVE ON *.* to 'reader'@'%' identified by 'readerpwd'; //后面的“readerpwd”换成自己的数据库密码
flush privileges;
8.查看login_bin日志文件是否打开

*如果此值为OFF,那就证明你的配置文件没起作用,查看自己的配置文件路径是否正确
查看master状态
show master status;

主机器至此配置完毕
9.重复4、5、6步骤生成从数据库
10.配置从数据库相关数据
change master to master_host='主库地址',master_post='端口',master_user='reader',master_password='readerpwd',master_log_file='mysql-bin.000004',master_log_pos=3958;
*后面两个属性要跟主库里的文件名字要保持一致
11.启动slave服务
start slave;
12.查看相关参数
show slave status\G;

两个为yes表示主从复制成功,如果为no或者为connection表示未成功
*如果各位还有不懂的地方请留言,楼主会第一时间进行解答,如果觉得可以,请给楼主一个小赞