Docker安装mysql镜像并进行主从配置
Docker安装mysql镜像并进行主从配置
1.下载需要的mysql版本镜像
docker pull mysql:5.6
2.启动mysql服务实例(基本启动)
#启动主mysql
docker run --name mysql-master -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
解析:
--name 容器名给容器取名字为mysql-master-p 端口1:端口2端口1是对外暴露的端口(即宿主机的端口),端口2 是mysql端口-e MYSQL_ROOT_PASSWORD=密码即root用户的密码-d mysql:5.6代表后台运行我们的mysql
注意:(此方式的缺点:容器关闭再启动我们的数据就没有了)
#启动从mysql 改变端口号
docker run --name mysql-slave -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
3.进行主从配置&&挂载启动
MySQL5.6开始主从复制有两种方式:基于日志(binlog);基于GTID(全局事务标示符)。此文章是基于日志方式的配置步骤。

创建文件夹
mkdir /home/docker/mysql/master/conf/
vim my.cnf
主mysql的my.cnf配置文件
[mysqld]
#主数据库端ID号(为1时表示为master,其中master_id必须为1到232-1之间的一个正整数值,主从server-id不能一样)
server_id = 1
#开启二进制日志
log-bin = mysql-bin
同理配置slave的my.cnf文件
[mysqld]
server-id=2
relay-log=relaylogs
3.1挂载启动(一般选择这种方式)
#主节点启动
docker run --name mysql-master -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d -v /home/docker/mysql/master/conf/my.cnf:/etc/mysql/my.cnf -v /home/docker/mysql/master/data:/var/lib/mysql mysql:5.6
解析:
-v /home/docker/mysql/master/conf/my.cnf:/etc/mysql/my.cnf代表将宿主机/home/docker/mysql/master/conf/my.cnf 配置文件挂载到 mysql容器的/etc/mysql/my.cnf下-v /home/docker/mysql/master/data:/var/lib/mysql代表将宿主机/home/docker/mysql/master/data 配置文件挂载到 mysql容器的/var/lib/mysql下
#从节点启动
docker run --name mysql-slave -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 -d -v /home/docker/mysql/slave/conf/my.cnf:/etc/mysql/my.cnf -v /home/docker/mysql/slave/data:/var/lib/mysql mysql:5.6
可以看到容器mysql-master和mysql-slave已经启动成功!

3.2保存文件重启mysql,进入主库
#进入mysql容器内部
docker exec -it 主mysql的容器id bash
#登录mysql
mysql -uroot -p123456
3.3授予用户权限
#这里就采用的root用户
GRANT REPLICATION SLAVE ON *.* TO 'root'@'%' identified by '123456';
FLUSH PRIVILEGES;
show grants for 'root'@'%';
3.4登录从库配置主库的信息
# 内网地址
CHANGE MASTER TO MASTER_HOST='172.18.242.24',
MASTER_PORT=3307,
MASTER_USER='root',
MASTER_PASSWORD='123456',
master_log_file = 'mysql-bin.000001',
master_log_pos=0;
3.5查看是否配置成功
#开启复制
start slave;
#查看复制有无成功
show slave status\G
可以看到配置成功( 当看到Slave_IO_Running: YES、Slave_SQL_Running: YES才表明状态正常)

下面测试一下是否开启同步
#在master中创建一个数据库
create database mytest default character set utf8;
#在mytest数据库中创建一个表
create table student(`name` varchar(64) not null,`age` int(11) not null) default charset utf8;
可以看到slave的同步开启了

参考:
Docker安装mysql镜像并进行主从配置的更多相关文章
- docker安装mysql镜像和容器
下拉镜像 docker pull mysql/mysql-server:5.5 后面的mysql标签是版本号,是可选择的,有: 5.5 5.6 5.7 8.0 创建mysql5.5的容器 docker ...
- docker安装mysql5.6镜像并进行主从配置
docker安装mysql镜像并进行主从配置 1.去DaoCloud官网(dockerhub可能因为网速问题下载的慢)查找需要的mysql版本镜像 docker pull daocloud.io/li ...
- docker安装mysql主从
docker安装mysql主从 启动主库: 1.docker run --name master -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5 ...
- Docker学习实践 - Docker安装MySql数据库
Docker安装MySQL数据库 1.Ubuntu安装MySQL安装 (1)安装编译源码需要的包 sudo apt-get install make cmake gcc g++ bison libnc ...
- 使用docker安装mysql和redis
本文介绍在linux下使用docker安装mysql和redis. 原文地址:代码汇个人博客 http://www.codehui.net/info/59.html 测试环境:centos7.6,do ...
- docker 安装mysql mongo
Docker安装Mysql 1.拉取镜像 docker pull mysql/mysql-server 2.运行mysql docker run -d -p : --name [Name] [Imag ...
- docker安装MySQL8,目录挂载、配置用户名密码、忽略表名大小写、连接数、特殊字符、时区
原文:docker安装MySQL8,目录挂载.配置用户名密码.忽略表名大小写.连接数.特殊字符.时区 一.环境配置 1.系统:centos7.3 2.docker版本:Docker version 1 ...
- CentOS 中利用docker安装MySQL
1.前提条件 centos7 且内核版本高于3.10, 可通过命令: uname -r 查看内核版本 2.利用yum 安装docker 安装一些必要的系统工具: sudo yum install -y ...
- Docker安装MySQL,Redis,阿里云镜像加速
Docker安装 虚拟化容器技术.Docker基于镜像,可以秒级启动各种容器.每一种容器都是一个完整的环境,容器之间相互隔离. 如果之前安装的有其他版本,卸载旧的版本. $ sudo yum remo ...
随机推荐
- 了解CSS in JS(JSS)以及在React项目中配置并使用JSS
目录 认识JSS 什么是JSS JSS 的常见实现 JSS 的好处与坏处 好处 坏处 使用模块化CSS实现JSS 安装插件 在React项目中的tsconfig.json中添加配置 vscode项目中 ...
- 记一次在Windows10桌面环境搭建Jekins的吐血经历
目录 写在前面 故事背景 踩坑详情 最后总结 写在前面 首先声明,除非万不得已,千万不要在Windows环境做这个事情,否则就等着各种坑吧. 本人一贯的立场都是坚持用正确的方法做事,显然在Window ...
- 关于:org.apache.catalina.connector.ClientAbortException及getOutputStream() has already been called for this response的异常处理
1.异常场景: 在进行将数据用word导出或者Excel导出的时候.抛出的异常getOutputStream() has already been called for this response 导 ...
- 自己动手实现Lua--实现TAILCALL指令
最近在看<自己动手实现Lua-虚拟机.编译器和标准库>.这是本挺不错的书,通过学习此书能够对Lua语言有比较深刻的理解,此外还可以对如何自己实现一门脚本语言有直观的认识.对于想学习Lua的 ...
- VulnHub靶场渗透之:Gigachad
环境搭建 VulnHub是一个丰富的实战靶场集合,里面有许多有趣的实战靶机. 本次靶机介绍: http://www.vulnhub.com/entry/gigachad-1,657/ 下载靶机ova文 ...
- nodejs koa2 设置 静态资源目录
参考这篇文章:https://blog.csdn.net/qq_38262910/article/details/89147571?utm_medium=distribute.pc_relevant_ ...
- 【springboot】集成swagger
1.简介 本章介绍 SpringBoot2.1.9 集成 Swagger2 生成在线的API接口文档. 2. pom依赖: 通过对比了swagger的几个版本,发现还是2.6.1问题最少 <!- ...
- Jsp:taglib实现
web应用的结构: web.xml classes diegoyun OutputTag.class WEB-INF src diegoyun OutputTag.java mytag tlds ...
- Linux centos 安装 JDK 8
一.下载JDK 官方下载 # 下载地址 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151. ...
- 刷题-力扣-剑指 Offer 42. 连续子数组的最大和
剑指 Offer 42. 连续子数组的最大和 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/lian-xu-zi-shu-zu-de ...