基于Docker的MySQL主从数据库搭建


声明:本文转载自https://my.oschina.net/EIKPE2lvl3wigMQG/blog/1797763,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

基于Docker的MySQL主从数据库搭建

master主数据库

新增mysql配置文件mysql-master.cnf

[mysqld] log-bin=mysql-bin server-id=161 

注:server-id一般为ip最后一段

编写Dockerfile

FROM mysql:latest MAINTAINER Raphael Zhang COPY mysql-master.cnf /etc/mysql/conf.d/ EXPOSE 3306 CMD ["mysqld"] 

docker.io的mysql镜像配置文件结构与nginx类似,通过以上脚本导入配置即可。

构建docker镜像

docker build -t mysql-master:latest . 

创建容器

docker run --name mysql-master -p 3306:3306 -v $HOME/mysql/conf.d:/etc/mysql/conf.d -v $HOME/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD={your passwd} -d mysql-master:latest 

登陆到主数据库容器,查看master状态

docker exec -it mysql-master bash 

image

主数据库创建用户

SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by 'mysql_master'; 

slave从数据库

创建方式与master方式类似

新增mysql配置文件mysql-slave.cnf

[mysqld] log-bin=mysql-bin server-id=163 

注:server-id一般为ip最后一段

编写Dockerfile

FROM mysql:latest MAINTAINER Raphael Zhang COPY mysql-slave.cnf /etc/mysql/conf.d/ EXPOSE 3306 CMD ["mysqld"] 

镜像构建过程类似,不再赘述

登陆从数据库,设置相关参数

SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); change master to master_host='172.31.196.161',master_user='backup',master_password='mysql_master',master_log_file='mysql-bin.000002',master_log_pos=439; 

master_host为docker的地址不能写127.0.0.1
master_user是在主库创建的用户
master_log_pos是主库show master status;查询出的Position

启动服务

start slave; 

查看服务状态

show slave status; 

显示

Waiting for master to send event 

即是成功了。

本文发表于2018年04月19日 22:38
(c)注:本文转载自https://my.oschina.net/EIKPE2lvl3wigMQG/blog/1797763,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 2023 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1