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;
最新文章
- The Path Attribute
- write_back 浅浅分析
- javascript插件编写小结
- Maven学习小结(六 setting.xml详解[转])
- hdu 1253 胜利大逃亡 (三维简单bfs+剪枝)
- day4作业
- 在mac os 中安装 autoconf and automake
- 我的学习之路_第三十章_servlet
- JavaScript动画:offset家族和匀速动画详解(含轮播图的实现)
- Soot生成代码控制流图
- Python-HTTP 概况
- leetcode刷题第二天<;两数相加>;
- azkaban使用--依赖dependencies作业
- 腾讯内推一面C++
- 什么是DevOps?DevOps简明教程
- 数组filter()参数详解,巧用filter()数组去重
- Xamarin iOS教程之使用按钮接接收用户输入
- win7 安装mysql 5.7.9记录
- tomcat conf目录下文件的作用
- Openfiler使用说明
热门文章
- ssm中的注解
- 安霸pipeline简述之rgb域的处理
- [笔记] encoder-decoder NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE
- 3、Linux的Redis安装
- antd动态的表格合并(包含排序功能)
- spring security oauth2搭建resource-server demo及token改造成JWT令牌
- dart系列之:如丝滑般柔顺,操作文件和目录
- 小迪安全 Web安全 基础入门 - 第四天 - 30余种加密编码进制&;Web&;数据库&;系统&;代码&;参数值
- 选课系统V1.0
- 深入理解css中position属性及z-index属性 https://www.cnblogs.com/zhuzhenwei918/p/6112034.html