使用doker从0到1搭建mysql主从复制

周末时间没事可做,忽然想搭建一个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表示未成功

*如果各位还有不懂的地方请留言,楼主会第一时间进行解答,如果觉得可以,请给楼主一个小赞

你可能感兴趣的:(使用doker从0到1搭建mysql主从复制)