Docker 安装mysql主从
安装docker
1.yum -y install docker
2.查看是否安装成功
docker -v
3.接着将docker后台启动
systemctl start docker.service
4.设置开机启动
systemctl enable docker
1.查询安装过的软件包
yum list installed | grep docker

2.卸载安装的软件包
yum -y remove docker.x86_64
3.删除镜像/容器等
rm -rf /var/lib/docker
拉取msyql
docker pull mysql:5.6.29
启动msyql
docker run -d -p 3306:3306
--restart=always --name mysql -e MYSQL_ROOT_PASSWORD=’admindev123$%^’mysql:5.6.29
其中name是容器名称,MYSQL_ROOT_PASSWORD设置root密码
通过docker ps -a查看已经在docker中启动的容器

创建目录 /data/mysql/conf/

我们将容器里的配置文件都复制到服务器里面下面是代码ID是你的容器ID
docker cp ID:/etc/mysql/my.cnf /data/mysql/conf/
再删除掉刚才创建的mysql容器

docker run -p 3306:3306 --name slave-mysql -v /data/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /data/mysql/logs:/var/log/mysql -v /data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD='admindev123$%^' --privileged=true -d mysql:5.6.29
Master设置
在主机上修改配置文件:vi /data/mysql/conf/my.cnf
放在[mysqld]下面 放在[mysql_safe]里面没效果
log_bin=master-bin #启动MySQL二进制日志
log_bin_index = master-bin.index
server-id=1 #服务器唯一标识

_________________下面选填______________________
expire-logs-days=7 #二进制日志的有效期
binlog_ignore_db=mysql #不需要同步的数据库
binlog_ignore_db=information_schema
binlog_ignore_db=performation_schema
binlog_ignore_db=sys
binlog_do_db=mybatis #需要同步的数据库名字
sync_binlog=0
__________________________________________________
Mysql配置参数sync_binlog说明
MySQL提供一个sync_binlog参数来控制数据库的binlog刷到磁盘上去。
默认,sync_binlog=0,表示MySQL不控制binlog的刷新,由文件系统自己控制它的缓存的刷新。这时候的性能是最好的,但是风险也是最大的。因为一旦系统Crash,在binlog_cache中的所有binlog信息都会被丢失。
如果sync_binlog>0,表示每sync_binlog次事务提交,MySQL调用文件系统的刷新操作将缓存刷下去。最安全的就是sync_binlog=1了,表示每次事务提交,MySQL都会把binlog刷下去,是最安全但是性能损耗最大的设置。这样的话,在数据库所在的主机操作系统损坏或者突然掉电的情况下,系统才有可能丢失1个事务的数据。但是binlog虽然是顺序IO,但是设置sync_binlog=1,多个事务同时提交,同样很大的影响MySQL和IO性能。虽然可以通过group commit的补丁缓解,但是刷新的频率过高对IO的影响也非常大。对于高并发事务的系统来说,“sync_binlog”设置为0和设置为1的系统写入性能差距可能高达5倍甚至更多。
所以很多MySQL DBA设置的sync_binlog并不是最安全的1,而是100或者是0。这样牺牲一定的一致性,可以获得更高的并发和性能。
重启msyql ID为docker启动的ID
Docker restart ID

1.进入容器内部并且进入mysql后台mysql
#首先要进入容器内部
docker exec -it 容器名或容器ID /bin/bash
#进入mysql
mysql -u root -p
合起来写: docker exec -it ID或名称 mysql -uroot -p

mysql> CREATE USER 'root'@'192.168.2.93' IDENTIFIED BY 'admindev123$%^';
mysql> GRANT REPLICATION slave ON *.* TO 'root'@'192.168.2.93';
mysql> FLUSH TABLES WITH READ LOCK;
mysql > SHOW MASTER STATUS;(查看主服务器状态)

Slave设置
MASTER_LOG_FILE,MASTER_LOG_POS在主库执行 : SHOW MASTER STATUS; 命令可以取得
进入mysql
docker exec -it mysql mysql -uroot -p
执行
CHANGE MASTER TO MASTER_HOST='192.168.2.92',MASTER_PORT=3306,MASTER_USER='root',MASTER_PASSWORD='admindev123$%^',MASTER_LOG_FILE='master-bin.000001',MASTER_LOG_POS=425;
启动 slave 线程开始同步
START SLAVE;
在从库 查看同步状态
show slave status;
show slave status\G;
备注:Slave_IO_Running和Slave_SQL_Running都为yes才表示同步成功。
如需想停止同步功能,则登录MySQL状态下,停止同步命令:
stop slave;

Docker 安装mysql主从的更多相关文章
- docker安装mysql主从
docker安装mysql主从 启动主库: 1.docker run --name master -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5 ...
- Docker安装mysql镜像并进行主从配置
Docker安装mysql镜像并进行主从配置 1.下载需要的mysql版本镜像 docker pull mysql:5.6 2.启动mysql服务实例(基本启动) #启动主mysql docker r ...
- Docker容器启动Mysql,Docker实现Mysql主从,读写分离
Docker容器启动Mysql,Docker实现Mysql主从,读写分离 一.Docker文件编排 二.配置主从复制 2.1 配置master 2.2 配置slave 三.验证主从复制 3.1 mas ...
- Docker构建mysql主从
一.为什么要搭建主从架构呢 1.数据安全,可以进行数据的备份. 2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器.从而缓解数据库访问的压力 3.故障 ...
- springboot多数据源配合docker部署mysql主从实现读写分离
本篇主要有两部分: 1.使用docker部署mysql主从 实现主从复制 2.springboot项目多数据源配置,实现读写分离 一.使用docker部署mysql主从 实现主从复制 此次使用的是wi ...
- 使用Docker安装Mysql
最近使用阿里云服务器,学习一下Docker,今天学着使用Docker安装MySQL. 首先,从阿里云的Docker Hub 上pull一个MySQL的image. [centos@loovelj~]$ ...
- 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不区分大小写问题
Docker安装MySQL忽略大小写问题的问题连接MySQL: 查看当前mysql的大小写敏感配置 show global variables like '%lower_case%'; +------ ...
随机推荐
- IDEA 使用rest client测试
一.进入 rest 控制台 idea 导航栏 ==> Tools ==> HTTP Client ==> Test RESTFUL Web Service 如图: 一般来说,idea ...
- spring中JDBCTemplate的简单应用
package cn.itcast.datasource.jdbctemplate;import cn.itcast.utils.JDBCUtils;import org.springframewor ...
- DevOps到底是什么意思?
目录 一.方法论 二.DevOps的起源 三.DevOps到底是什么 四.DevOps的发展现状 五.DevOps与虚拟化.容器.微服务 一.方法论 提到DevOps这个词,我相信很多人一定不会陌生. ...
- *CTF pwn write up
第一次做出XCTF的题目来,感谢wjh师傅的指点,虽然只做出一道最简单的pwn题,但是还是挺开心的.此贴用来记录一下,赛后试着看看其他大师傅的wp,看看能不能再做出一道题来. babyheap 程序有 ...
- pwnable_start (内联汇编)
第一次写内联汇编的题目,以前见师傅们在exp中写汇编,感觉很厉害,今天碰到了,也记录一下. 下载附件发现是32位程序,什么保护都没开,ida看一下伪代码. 可以说是很简洁了,调用了一个write和re ...
- CF1492B Card Deck 题解
Content 有 \(n\) 张纸牌组成的一个牌堆,每张纸牌都有一个价值 \(p_1,p_2,\dots,p_n\).每次选出最顶上的几个牌放到另外一个一开始为空的牌堆里面.定义一个牌堆的总值为 \ ...
- vim 默认配置
vim ~/.vimrc 然后输入常用的需要用的命令,然后保存,这个每次启动VIM都会自动配置.当然你也可以在VIM里面按":"之后输入如下命令,但是下次启动之后设置就会丢失了. ...
- JAVA获取请求链接中所有参数(GET请求)
Enumeration<String> paraNames=request.getParameterNames(); for(Enumeration<String> e=par ...
- C++基础之虚析构函数原理
结论 虚函数表指针 + 虚函数表 共同实现 演示 VS2017(32位) 基类有析虚构函数 一段代码演示 #include <iostream> #include <memory&g ...
- java源码——计算立体图形的表面积和体积
计算球,圆柱,圆锥的表面积和体积. 利用接口实现. 上代码. Contants.java 常量存储类 package com.fuxuemingzhu.solidgraphics.contants; ...