docker安装mysql5.6镜像并进行主从配置
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的同步开启了
参考:
docker安装mysql5.6镜像并进行主从配置的更多相关文章
- Docker安装mysql镜像并进行主从配置
Docker安装mysql镜像并进行主从配置 1.下载需要的mysql版本镜像 docker pull mysql:5.6 2.启动mysql服务实例(基本启动) #启动主mysql docker r ...
- Docker安装mysql5.7并且配置主从复制
Docker安装mysql5.7并且配置主从复制 一.拉取mysql镜像 二.创建文件docker.cnf 2.1 mysql主机(192.168.21.55:3307) 2.1.1 创建文件夹 2. ...
- Docker 安装MySQL5.7(三)
Docker 安装MySQL5.7 1.搜索docker镜像(可以看到搜索的结果,这个结果是按照一定的星级评价规则排序的) docker search mysql 2.拉取docker的mysql镜像 ...
- docker安装mysql5.6和redis3.2
环境:centos 6.8, docker version 1.7.1 1.docker安装mysql5.6 第一步:拉取镜像 docker pull mysql:5.6 第二步:docker run ...
- CentOS7利用docker安装MySQL5.7
CentOS7利用docker安装MySQL5.7 前提条件 centos7 且内核版本高于3.10, 可通过以下命令查看内核版本 uname -r 利用yum 安装docker 安装一些必要的系统工 ...
- Docker安装入门 -- 应用镜像
Docker安装入门 -- 应用镜像 WordPress 1.docker build -t csphere/wordpress:4.2 . 2.docker run -d -p 80:80 -- ...
- Docker安装入门 -- 中间件镜像
Docker安装入门 -- 中间件镜像 php-fpm 1.docker build -t csphere/php-fpm:5.4 . //在当前目录下创建镜像 2.docker run -d - ...
- docker安装mysql5.7 数据挂载
docker安装mysql5.7,并数据卷挂载到主机 # docker 中下载 mysql docker pull mysql:5.7 #启动 docker run --name mysql3306 ...
- docker安装MySQL5.7示例!!坑
docker pull mysql 一.错误的启动 [root@localhost ~]# docker run ‐‐name mysql01 ‐d mysql 42f0981990 ...
随机推荐
- sublime 使用过程中遇到的问题
1.当我把鼠标放置在下图所示的class上几秒钟后,sublime就会在全局查找当前的class字符,这时sublime就会出现卡顿或无响应 解决方法: 点击preferences下的settings ...
- RabbitMq手动确认时的重试机制
本文转载自RabbitMq手动确认时的重试机制 消息手动确认模式的几点说明 监听的方法内部必须使用channel进行消息确认,包括消费成功或消费失败 如果不手动确认,也不抛出异常,消息不会自动重新推送 ...
- Python安装教程
1.下载好Python安装包后,双击打开(第一个是32位,第二个是64位,根据自己电脑位数进行选择): 2.打开后如下,先将下方的Python添加到系统环境变量勾选上,再点击第一个默认安装即可: 3. ...
- 无所不能的Embedding7 - 探索通用文本表达[FastSent/InferSent/GenSen/USE]
在4/5章我们讨论过用skip-thought,quick-thought任务来进行通用文本向量提取,当时就有一个疑问为什么用Bookcorpus这种连续文本,通过预测前一个和后一个句子的方式得到的文 ...
- Spring注解@PropertySource加载配置文件和SpringBoot注解@Value、@ConfigurationProperties进行属性映射
SpringBoot的配置文件 位置:resources目录下 配置文件的作用: (1).SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用a ...
- Jump Server在docker中安装部署
安装部署: 1.准备机器: 官方环境要求: 硬件配置: 2个CPU核心, 4G 内存, 50G 硬盘(最低) 操作系统: Linux 发行版 x86_64 Python = 3.6.x Mysql S ...
- 《进击吧!Blazor!》第一章 5.组件开发
<进击吧!Blazor!>是本人与张善友老师合作的Blazor零基础入门系列视频,此系列能让一个从未接触过Blazor的程序员掌握开发Blazor应用的能力. 视频地址:https://s ...
- python行与列显示不全
在显示数据框时添加以下代码 #显示所有列 pd.set_option('display.max_columns', None) #显示所有行 pd.set_option('display.max_ro ...
- DRF简介/接口概念
目录 一.drf框架简介 1. drf安装 2. drf的优势 二.接口 1. 接口的概念 2. 接口文档 3. 接口规范(restful) 3.1 url链接规范 3.2 请求方式规范 3.3 响应 ...
- DRF 外键字段深度查询优化、ListSerializer辅助完成群改
目录 一.Response封装 二.外键字段深度查询 1.序列化配置exclude.depth 2.模型层函数.插拔式字段查询 三.listserializer辅助类 一.Response封装 用de ...