基于Alpine的Docker镜像快速搭建MySQL主从

Alpine Linux Docker镜像基于Alpine Linux操作系统,后者是一个面向安全的轻型Linux发行版。不同于通常Linux发行版,Alpine Linux采用了musl libc和busybox以减小系统的体积和运行时资源消耗。在保持瘦身的同时,Alpine Linux还提供了自己的包管理工具apk,可以在其网站上查询,或者直接通过apk命令查询和安装。

Alpine Linux Docker镜像也继承了Alpine Linux发行版的这些优势。相比于其他Docker镜像,它的容量非常小,仅仅只有5M,且拥有非常友好的包管理器。

master主数据库配置文件my.cnf
https://github.com/ppabc/lanmp-alpine/blob/master/mysql5/my.cnf

编写Dockerfile
https://github.com/ppabc/lanmp-alpine/blob/master/mysql5/Dockerfile

构建docker镜像
docker build –tag lanmp-alpine:mysql -f Dockerfile .

创建MYSQL master容器
docker run –name mysql-master1 -p 3316:3306 -v /data1:/data -d ppabc/lanmp-alpine:mysql

登陆到主数据库容器,查看master状态
docker exec -it mysql-master1 sh

主数据库创建用户
SET sql_mode=(SELECT REPLACE(@@sql_mode,’ONLY_FULL_GROUP_BY’,”));
GRANT REPLICATION SLAVE ON *.* to ‘backup’@’%’ identified by ‘mysql_master’;

备份主数据库数据
mysqldump -u root -h 127.0.0.1 -p –flush-logs –master-data=2 –single-transaction –routines –triggers –events –all-databases > /root/slave11.sql

slave从数据库
创建方式与master方式类似

新增mysql配置文件mysql-slave.cnf
https://github.com/ppabc/lanmp-alpine/blob/master/mysql_slave/my.cnf

编写Dockerfile
https://github.com/ppabc/lanmp-alpine/blob/master/mysql_slave/Dockerfile

创建MYSQL slave容器
docker run –name mysql-master2 -p 3326:3306 -v /data2:/data -d ppabc/lanmp-alpine:slave

登陆到主数据库容器,查看master状态
docker exec -it mysql-master2 sh

master_user是在主库创建的用户
master_log_pos是主库show master status;查询出的Position

登陆从数据库,设置相关参数
SET sql_mode=(SELECT REPLACE(@@sql_mode,’ONLY_FULL_GROUP_BY’,”));
change master to master_host=’172.17.0.2′,master_user=’backup’,master_password=’mysql_master’,master_log_file=’mysql-bin.000005′,master_log_pos=515;

启动服务
start slave;
查看服务状态
show slave status;
显示
Waiting for master to send event
说明主从成功了。

docker镜像地址 https://hub.docker.com/r/ppabc/lanmp-alpine/
github地址 https://github.com/ppabc/lanmp-alpine

 

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!