docker安装mysql镜像并进行主从配置

1.去DaoCloud官网(dockerhub可能因为网速问题下载的慢)查找需要的mysql版本镜像

docker pull daocloud.io/library/mysql:5.6.20

2.启动mysql服务实例(基本启动)

#启动主mysql
docker run --name mysql-master -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d daocloud.io/library/mysql:5.6.20

解析:

  • --name 给容器取名字为mysql-master
  • -p 端口1:端口2 端口1是对外暴露的端口(即宿主机的端口),端口2 使我们的mysql端口
  • -e MYSQL_ROOT_PASSWORD=密码 即root用户的密码
  • daocloud.io/library/mysql:5.6.20 代表后台运行我们的mysql

注意:(此方式的缺点:容器关闭再启动我们的数据就没有了)

#启动从mysql 改变端口号
docker run --name mysql-slave -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d daocloud.io/library/mysql:5.6.20

3.高级启动(一般选择这种方式)

#主节点启动
docker run --name mysql-master -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d -v /opt/docker/mysql/master/conf:/etc/mysql/ -v /opt/docker/mysql/master/data:/var/lib/mysql daocloud.io/library/mysql:5.6.20

解析:

  • -v /opt/docker/mysql/master/conf:/etc/mysql/ 代表将宿主机/opt/docker/mysql/master/conf 配置文件挂载到 mysql容器的/etc/mysql/下

  • -v /opt/docker/mysql/master/data:/var/lib/mysql 代表将宿主机/opt/docker/mysql/master/data 配置文件挂载到 mysql容器的/var/lib/mysql下

    /opt/docker/mysql/master/data和/opt/docker/mysql/master/data 这量个目录是我们虚拟机的地址,文件夹不用建,启动成功自动生成

#从节点启动
docker run --name mysql-slave -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d -v /opt/docker/mysql/slave/conf:/etc/mysql/ -v /opt/docker/mysql/slave/data:/var/lib/mysql daocloud.io/library/mysql:5.6.20

可以看到都正常启动成功

4.进行主从配置

MySQL5.6开始主从复制有两种方式:基于日志(binlog);基于GTID(全局事务标示符)。此文章是基于日志方式的配置步骤。

4.1编辑修改master上已经挂载到本地的my.cnf文件

(不配置的话使用mysql show master status;查看为空值)

vim /opt/docker/mysql/master/conf/my.cnf
[mysqld]
log-bin=mysql-bin
server-id=1

解析:

  • log-bin配置项表示binlog的base name,产生的日志文件名称类似,mysql-bin.00001,mysql-bin.00002,mysql-bin.00003
  • server-id配置表示数据库ID号, 为1时表示为master,其中master_id必须为1到232-1之间的一个正整数值,主从server-id不能一样;

同理配置slave的my.cnf文件

[mysqld]
server-id=2
relay-log=relaylogs

4.2保存文件重启mysql

#进入mysql容器内部
docker exec -it 主mysql的容器id bash
#登录mysql
mysql -uroot -p123456

4.3授予用户权限

#这里就采用的root用户
GRANT REPLICATION SLAVE ON *.* TO 'root'@'%' identified by '123456';
FLUSH PRIVILEGES;
show grants for 'root'@'%';

4.3登录从库配置主库的信息

CHANGE MASTER TO MASTER_HOST='192.168.19.101',
MASTER_PORT=3306,
MASTER_USER='root',
MASTER_PASSWORD='123456',
master_log_file = 'mysql-bin.000001',
master_log_pos=0;

4.4查看是否配置成功

#开启复制
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的同步开启了

参考:

MySql主从同步配置及实现

docker单节点部署mysql 5.6主从

mysql show master status为空值

docker安装mysql5.6镜像并进行主从配置的更多相关文章

  1. Docker安装mysql镜像并进行主从配置

    Docker安装mysql镜像并进行主从配置 1.下载需要的mysql版本镜像 docker pull mysql:5.6 2.启动mysql服务实例(基本启动) #启动主mysql docker r ...

  2. Docker安装mysql5.7并且配置主从复制

    Docker安装mysql5.7并且配置主从复制 一.拉取mysql镜像 二.创建文件docker.cnf 2.1 mysql主机(192.168.21.55:3307) 2.1.1 创建文件夹 2. ...

  3. Docker 安装MySQL5.7(三)

    Docker 安装MySQL5.7 1.搜索docker镜像(可以看到搜索的结果,这个结果是按照一定的星级评价规则排序的) docker search mysql 2.拉取docker的mysql镜像 ...

  4. docker安装mysql5.6和redis3.2

    环境:centos 6.8, docker version 1.7.1 1.docker安装mysql5.6 第一步:拉取镜像 docker pull mysql:5.6 第二步:docker run ...

  5. CentOS7利用docker安装MySQL5.7

    CentOS7利用docker安装MySQL5.7 前提条件 centos7 且内核版本高于3.10, 可通过以下命令查看内核版本 uname -r 利用yum 安装docker 安装一些必要的系统工 ...

  6. Docker安装入门 -- 应用镜像

    Docker安装入门 -- 应用镜像 WordPress  1.docker build -t csphere/wordpress:4.2 .  2.docker run -d -p 80:80 -- ...

  7. Docker安装入门 -- 中间件镜像

    Docker安装入门 -- 中间件镜像 php-fpm 1.docker build -t csphere/php-fpm:5.4 .   //在当前目录下创建镜像 2.docker run -d - ...

  8. docker安装mysql5.7 数据挂载

    docker安装mysql5.7,并数据卷挂载到主机 # docker 中下载 mysql docker pull mysql:5.7 #启动 docker run --name mysql3306 ...

  9. docker安装MySQL5.7示例!!坑

    docker  pull  mysql 一.错误的启动 [root@localhost  ~]#  docker  run  ‐‐name  mysql01  ‐d  mysql 42f0981990 ...

随机推荐

  1. Angular性能优化实践——巧用第三方组件和懒加载技术

    应该有很多人都抱怨过 Angular 应用的性能问题.其实,在搭建Angular项目时,通过使用打包.懒加载.变化检测策略和缓存技术,再辅助第三方组件,便可有效提升项目性能. 为了帮助开发者深入理解和 ...

  2. 关于PCA主成分分析的一点理解

    PCA 即主成分分析技术,旨在利用降维的思想,把多指标转化为少数几个综合指标. 假设目前我们的数据特征为3,即数据维度为三,现在我们想将数据降维为二维,一维: 我们之前的数据其实就是三维空间中的一个个 ...

  3. 11_MySQL如何让数据分页显示

    -- 数据分页 SELECT empno,sal FROM t_emp LIMIT 5;

  4. Redis常用数据类型及其存储结构(源码篇)

    一.SDS 1,SDS源码解读 sds (Simple Dynamic String),Simple的意思是简单,Dynamic即动态,意味着其具有动态增加空间的能力,扩容不需要使用者关心.Strin ...

  5. 你真的了解URLEncode吗?

    使用浏览器进行Http网络请求时,若请求query中包含中文,中文会被编码为 %+16进制+16进制形式,但你真的深入了解过,为什么要进行这种转义编码吗?编码的原理又是什么? 例如,浏览器中进行百度搜 ...

  6. WPF -- 自定义按钮

    本文介绍WPF一种自定义按钮的方法. 实现效果 使用图片做按钮背景: 自定义鼠标进入时效果: 自定义按压效果: 自定义禁用效果 实现效果如下图所示: 实现步骤 创建CustomButton.cs,继承 ...

  7. 第43天学习打卡(JVM探究)

    JVM探究 请你谈谈你对JVM的理解?Java8虚拟机和之前的变化更新? 什么是OOM,什么是栈溢出StackOverFlowError? 怎么分析? JVM的常用调优参数有哪些? 内存快照如何抓取, ...

  8. 使用docker-compose配置mysql数据库并且初始化用户

    使用docker-compose配置mysql数据库并且初始化用户 docker-compose  测试创建一个docker-compose.yml测试 以下配置了外部数据卷.外部配置文件.外部初始化 ...

  9. 死磕Spring之IoC篇 - 开启 Bean 的加载

    该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...

  10. Python切换版本工具pyenv

    目录 安装pyenv 安装与查看py版本 切换py版本 结合ide使用示例 和virtualenv的一些区别 参考文献 使用了一段时间,我发现这玩意根本不是什么神器,简直就是垃圾,安装多版本总是失败, ...