Docker Mysql主从同步配置搭建
Docker Mysql主从同步配置搭建
建立目录
在虚拟机中建立目录,例如路径/home/mysql/master/data,目录结构如下:

Linux中
新建文件夹命令:mkdir 文件夹名
返回上一层: cd ../
新建/修改文件命令:vi 文件名
例如

配置主从配置文件
Master下: my.cnf
在conf目录下输入:vi my.cnf
打开my.cnf后输入下列代码
完成后,按esc键后输入[ :wq ]保存返回
注意:也可以借助FlashFXP传输配置文件到虚拟机目录,比较方便如图下:

具体配置文件内容如下:
[mysqld]
server_id = 1
log-bin=mysql-bin
read-only=0
binlog-do-db=caesar
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
!includedir/etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
同理:Slaver下创建: my.cnf
[mysqld]
server_id = 2
log-bin=mysql-bin
read-only=1
binlog-do-db=caesar
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
relay_log=slaver_relay_log
!includedir/etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
说明: log-bin :需要启用二进制日志server_id : 用于标识不同的数据库服务器,而且唯一
binlog-do-db : 需要记录到二进制日志的数据库 binlog-ignore-db : 忽略记录二进制日志的数据库auto-increment-offset :该服务器自增列的初始值auto-increment-increment :该服务器自增列增量
replicate-do-db :指定复制的数据库 replicate-ignore-db :不复制的数据库relay_log :从库的中继日志,主库日志写到中继日志,中继日志再重做到从库 log-slave-updates :该从库是否写入二进制日志,如果需要成为多主则可启用。只读可以不需要
如果为多主的话注意设置 auto-increment-offset 和 auto-increment-increment 如上面为双主的设置: 服务器 152 自增列显示为:1,3,5,7,……(offset=1,increment=2)服务器 153 自增列显示为:2,4,6,8,……(offset=2,increment=2)
启动创建主从容器
启动docker
1)登陆Linux
2)启动docker,输入:sudo systemctl startdocker.service
3)启动创建主从容器(这个过程有点慢,大概需要一个小时多)
获取基础镜像,输入:docker pull mysql

等待加载,一个小时左右完成。

创建并启动主从容器
master:
在Linux中输入下列命令(注意这一串是一个命令)
docker run--name mastermysql -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=newsee888 -v /mysql/master/data:/var/lib/mysql-v /mysql/master/conf/my.cnf:/etc/mysql/my.cnf mysql

注意:
此处的路径要和上一步放的配置文件的路径要保持一致
slaver:
在Linux中输入下列命令(注意这一串是一个命令)
docker run--name slavermysql -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=newsee888 -v /mysql/slaver/data:/var/lib/mysql -v /mysql/slaver/conf/my.cnf:/etc/mysql/my.cnf mysql
注意:
(同上)
Master和Slaver设置
master:
1)进入master容器
输入:docker exec -it mastermysql bash

2)启动mysql命令,刚在创建窗口时我们把密码设置为:888888
输入:mysql -u root -p
回车后输入密码:创建容器时设置的"888888"

3)创建一个用户来同步数据
输入:GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by'123456';
表示创建一个slaver同步账号backup,允许访问的IP地址为%,%表示通配符
例如:192.168.0.%表示192.168.0.0-192.168.0.255的slaver都可用backup用户登陆到master

4)查看状态,记住File、Position的值,在Slaver的配置中将用到
输入:show master status;

slaver:
1)退出master容器,进入slaver容器
a.在mysql中输入 quit
b.在容器中输入exit
此时返回到Linux

2)进入slaver容器,启动mysql命令,刚在创建窗口时我们把密码设置为:newsee888
输入:docker exec -it slavermysql bash
输入:mysql -uroot -p
回车后输入密码:创建容器时设置的"888888"

3)设置主库链接
输入:
change master to
master_host='172.17.0.2',master_user='backup',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=439,master_port=3306;
注意:mysql-bin.000003 是master状态的File字段值,439是master的Position字段的值
如果出现下图提示,需要输入
stop slaveio_thread for channel ' ';

4)启动从库同步
首先重启slave:reset slave;
然后输入:start slave;

5)查看状态
输入:show slave status\G;

验证是否配置成功
使用Navicat登录主从数据库


1)在主容器中新建" caesar "数据库;刷新从库,出现caesar 数据库;
2)在主容器 caesar 中新建"test"表;刷新从库,caesar出现 test表;
3)在主容器"test"表中插入一条数据;刷新从库,效果更新如同主容器,OK!
Docker Mysql主从同步配置搭建的更多相关文章
- Docker Mysql主从同步配置搭建Demo
进行Docker操作前,先建立目录,我的路径是d:/docker/mysql,目录结构如下: --mysql --master --data --conf --my.cnf --slaver --da ...
- mysql主从同步配置(windows环境)
mysql主从同步配置(mysql5.5,windows环境) A主机(作为主服务器)环境:windows8.mysql5.5 ip:192.168.1.100(自己填) B主机(作为从服务器,由 ...
- centos:mysql主从同步配置(2018)
centos:mysql主从同步配置(2018) https://blog.csdn.net/liubo_2016/article/details/82379115 主服务器:10.1.1.144; ...
- Linux下MySQL主从同步配置
Centos6.5 MySQL主从同步 MySQL版本5.6.25 主服务器:centos6.5 IP:192.168.1.101 从服务器:centos6.5 IP:192.168.1.102 一. ...
- Mysql主从同步配置方案(Centos7)
最近在做项目高可用时,需要使用数据同步.由于只有双节点,且采用主主同步可能存在循环同步的风险,故综合考虑采用Mysql主从同步(Master-Slave同步). 可能没有接触过Mysql数据同步时,可 ...
- python中mysql主从同步配置的方法
1)安装mysql ubuntu中安装一台mysql了,docker安装另外一台mysql 获取mysql的镜像,主从同步尽量保证多台mysql的版本相同,我的ubuntu中存在的mysql是5.7. ...
- MySQL主从同步配置
如果主从配置之前安装了云平台,请停止云平台后在进行mysql主从配置. 1. 登录master数据库,检查数据库端口防火墙设置,允许远程客户连接,如果没有,执行以下操作. 执行命令:iptables ...
- mysql 主从同步配置
1 环境 mac air 主机做 主库,使用的是XAMPP自带的mysql 版本为 5.6.21, for osx10.6 (x86_64) 虚拟机mysql 做从库 版本为 5.5.38, fo ...
- Linux mysql主从同步配置
一.在两台Ubuntu机器上安装mysql1.检查系统中是否安装了mysql 这个是已经安装了的 没有安装的话执行上条命令===============================MySQL的一些 ...
随机推荐
- 你真的了解interface和内部类么
java 访问控制符 private : 只能被当前类访问 protected : 可以被同包的类和任何子类访问(包内,包外) default : 可以被包内的任何内访问 public ...
- devstack部署openstack环境
背景:公司需要搭建openstack私有云.配置两台物理服务器. 各大搜索引擎了解了下OpenStack.决定先在虚拟机上部署实现openstack. 前提准备 设备:一台宿主机Windows10 1 ...
- 数组的迭代方法(every、filter、forEach、map、some)
every: 对数组中的,每一项运行给定函数,如果该函数对每一项都返回true,则返回true. var number = [1,2,3,4,5,6]; var result = number.eve ...
- CCF-201803-2 碰撞的小球
问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处.有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒.当小球到达线段 ...
- SQL Server The target database ('db') is in an availability group and currently does not allow read only connections. For more information about application intent, see SQL Server Books Online.
一.问题概述 在错误日志中看到非常多的alwayson群集只读连接错误,错误信息的描述为“目标数据库位于可用性组,当前不允许通过read only连接”.错误日志如下: 当前的业务系统使用监听ip对数 ...
- 理解Spring中的IOC和AOP
我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入和AOP,面向切面编程,这两个是Spring的灵魂. 主要用到的设计模式有工厂模式和代理模式 IOC就是典型的工厂模式,通过ses ...
- Redis搭建多台哨兵
搭建多台哨兵 完成spring管理多台哨兵 学习redis如何数据持久化如何管理内存 Redis集群搭建 集群测试 Spring管理集群 2 搭建多台哨兵 2.1 搭建步骤 2.1.1 修改6379哨 ...
- Filecoin: 影响力容错(PFT)和预期共识(EC)
名字翻译:Power Fault Tolerance-影响力容错 关于这个名字翻译,小编思考了大约2周时间,期间也跟各路技术牛人进行了交流. The Power Fault Tolerance mod ...
- UWP 圆形菜单
用过Surface dial的童鞋们都很熟悉,当使用Dial的时候,那个圆形菜单很漂亮,那么我们在普通的uwp中是否也可以实现吗? 答案是肯定的. 其实这是来源于GayHub的一个开源项目,做的很不错 ...
- 【iOS】Core Bluetooth
本文介绍蓝牙4.0的一些基本知识. 基本概念.服务器.客户端 蓝牙LE是一个基于点对点的通信系统,其中一台设备作为服务器,另一台设备作为客户端.拥有数据的设备作为服务器,消费数据的设备作为客户端. 比 ...