docker之MySQL主从复制
MySQL主从复制
主服务器
配置文件目录
mkdir /var/lib/mysql/master/conf.d
数据存储目录
mkdir var/lib/mysql/master/data
配置my.cnf文件
# cd /var/lib/mysql/master/conf.d
# vim my.cnf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
symbolic-links=0
log-bin = mysql-bin
server-id = 1
启动master容器:
docker run -it -p 3306:3306 --name master -v /var/lib/mysql/master/conf.d:/etc/mysql/conf.d -v /var/lib/mysql/master/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
重启master容器
docker stop master slave
docker start master slave
进入master容器,设置mysql主从复制用户reader
docker exec -it master /bin/bash
root@1e8e984a9a30:/# mysql -uroot –p123456(前面设置的密码MYSQL_ROOT_PASSWORD=123456)
MySQL旧版赋权方法:
GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
GRANT REPLICATION SLAVE ON . to 'reader'@'%' identified by 'readerpwd';
注意:因为新版的的mysql版本已经将创建账户和赋予权限的方式分开了,所以如果是最先版本的mysql镜像按下面的方法创建用户、赋权。
创建账户:create user '用户名'@'访问主机' identified by '密码';
赋予权限:grant 权限列表 on 数据库 to '用户名'@'访问主机' ;(修改权限时在后面加with grant option)
mysql> create user 'reader'@'%' identified by 'readerpwd';
Query OK, 0 rows affected (4.57 sec)
mysql> GRANT REPLICATION SLAVE ON . to 'reader'@'%';
Query OK, 0 rows affected (1.13 sec)
FLUSH PRIVILEGES;
查看二进制日志是否开启:
mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | ON |
+---------------+-------+
1 row in set (0.99 sec)
mysql> show master status;
从服务器
配置文件目录
mkdir /var/lib/mysql/slave/conf.d
数据存储目录
mkdir var/lib/mysql/slave/data
# cd /var/lib/mysql/slave/conf.d
# vim my.cnf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
symbolic-links=0
server-id = 2
relay_log = mysql-relay-bin #打开Mysql日志,日志格式为二进制
read_only = 1 #设置只读权限
log_bin = mysql-bin #开启从服务器二进制日志
log_slave_updates = 1 #使得更新的数据写进二进制日志中
启动slave容器:
docker run -it -p 3307:3306 --name slave -v /var/lib/mysql/slave/conf.d:/etc/mysql/conf.d -v /var/lib/mysql/slave/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
进入slave容器,启动从服务器复制线程,让slave连接master,并开始重做master二进制日志中的事件
docker exec -it slave /bin/bash
root@6df92c02669a:/# mysql -uroot -p123456
mysql>change master to master_host='192.168.1.24',master_port=3306,master_user='reader',master_password='readerpwd',master_log_file='mysql-bin.000001',master_log_pos=155;
mysql> show slave status\G;
测试:
主服务器:
create database slavetest;
从服务器:观察是否创建了slavetest数据库,如果看到了,就说明实验成功了
show databases;
docker之MySQL主从复制的更多相关文章
- 基于Docker的Mysql主从复制
基于Docker的Mysql主从复制搭建 为什么基于Docker搭建? 资源有限 虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐 一台机器上可以运行多个Docker容器 Docker容器之间相 ...
- Docker搭建MySQL主从复制
Docker搭建MySQL主从复制 主从服务器上分别安装Docker 1.1 Docker 要求 CentOS 系统的内核版本高于 3.10 [root@localhost ~]# uname -r ...
- MySQL(14)---Docker搭建MySQL主从复制(一主一从)
Docker搭建MySQL主从复制(一主一从) 上一篇博客写了MYSQL主从复制原理 : MySQL(13)---MYSQL主从复制原理 这篇我们来写 Docker搭建MYSQL主从复制(一主一从) ...
- 基于Docker的Mysql主从复制搭建
来源:https://www.cnblogs.com/songwenjie/p/9371422.html?tdsourcetag=s_pctim_aiomsg 为什么基于Docker搭建? 资源有 ...
- 基于Docker搭建MySQL主从复制
摘要: 本篇博文相对简单,因为是初次使用Docker,MySQL的主从复制之前也在Centos环境下搭建过,但是也忘的也差不多了,因此本次尝试在Docker中搭建. 本篇博文相对简单,因为是初次使用D ...
- Docker搭建 MySQL 主从复制
为什么选 Docker 搭建主从复制需要两个以上的MySQL, 使用 Docker 非常方便.如果以前没用过,找个简单的文档看看,熟悉一下命令. 搭建过程 1.下载镜像 docker pull mys ...
- 基于 Docker 搭建 MySQL 主从复制
本篇博文相对简单,因为是初次使用Docker,MySQL的主从复制之前也在Centos环境下搭建过,但是也忘的也差不多了,因此本次尝试在Docker中搭建. 根据网上教程走还是踩了一些坑,不过所幸最终 ...
- 使用docker部署mysql主从复制集群
一.环境搭建 虚拟机环境:centos7 IP: 启动3个容器,一个是master,端口是3307,另外两个是slaver,端口是3308和3309 docker pull mysql:5.7 doc ...
- Docker进行MySQL主从复制操作
Docker的相关操作 与 Docker下MySQL容器的安装 https://www.cnblogs.com/yumq/p/14253360.html 本次实验我是在单机状态下进行mysql的主从复 ...
随机推荐
- MySQL数据库(6)----配置文件 my.cnf 的使用
1. 使用源码安装好MySQL后,其配置文件一般位于 /usr/local/my.cnf,可以使用如下命令查看查看配置文件的搜索顺序: root@javis:~$ mysqld --help --ve ...
- Fragment 底部菜单栏
实例讲解一 实例效果图: 点击wifi“按钮”显示的界面: 项目结构 具体代码编写 1.左边页面布局界面,frag_list.xml: <?xml version="1.0" ...
- Android 显示html标签或者带图片
Android中显示html文件要用Html.fromHtml(...)处理过的返回值,返回值可以成为setText()的参数. 只显示带文本的html可以用下面的方法处理html文件. public ...
- 一、ionic 图片轮播问题
使用ion-slide可以实现图片轮播,但是如果在html中仅仅增加ion-slide是远远不够的,会出现两个问题:图片加载不出来和图片轮播至最后一个不轮播的问题 1.如何解决图片加载不出来的问题 i ...
- winform打包发布安装包详解..
winform打包发布安装包详解.. 使用VS 自带的打包工具,制作winform安装项目 开发环境:VS 2008 Access 操作系统:Windows XP 开发语言:C# 项目名称:**管 ...
- iOS8模糊效果UIVisualEffectView的使用
iOS8模糊效果UIVisualEffectView的使用 效果: 源码: // // ViewController.m // EffectView // // Created by XianMing ...
- December 14th 2016 Week 51st Wednesday
Everything has its time and that time must be watched. 万物皆有时,时来不可失. Everything has its time, and I r ...
- 如果要遍历除了for循环,你还知道什么?——JavaScript的各种遍历方式
如果要遍历除了for循环,你还知道什么?——JavaScript的各种遍历方式 这是曾经面试中的一道题目,当时的我用现在很潮的话讲,整个人是懵比的,我呆呆的说了句,我好像只知道for循环啊.后来回过神 ...
- IntelliJ IDEA常用设置(转)
IntelliJ IDEA是一款非常优秀的JAVA编辑器,初学都可会对其中的一些做法感到很别扭,刚开始用的时候我也感到很不习惯,在参考了网上一些文章后在这里把我的一些经验写出来,希望初学者能快速适应它 ...
- Safari自动代理
1. 准备一个代理服务器,我使用的是GoAgent. 2. 准备一个PAC文件,我是从chrome导出的. 3. 准备一个本地文件服务器或web服务器,我是因为手头有一个使用NodeJS的小项目,所以 ...