Docker Mysql主从同步配置搭建Demo

进行Docker操作前,先建立目录,我的路径是d:/docker/mysql,目录结构如下:

--mysql
   --master
      --data
      --conf
         --my.cnf
   --slaver
      --data
      --conf
         --my.cnf

1、主从配置文件

Master: my.cnf   

[mysqld]
server_id = 1
log-bin= mysql-bin
read-only=0
binlog-do-db=blogging
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=blogging
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/

说明:
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)

2、启动创建主从容器

//获取基础镜像
docker pull mysql

//创建并启动主从容器;
//master
docker run --name mastermysql -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=anech -v d:/docker/mysql/master/data:/var/lib/mysql -v d:/docker/mysql/master/conf/my.cnf:/etc/mysql/my.cnf  mysql

//slaver
docker run --name slavermysql -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=anech -v d:/docker/mysql/slaver/data:/var/lib/mysql -v d:/docker/mysql/slaver/conf/my.cnf:/etc/mysql/my.cnf  mysql

  这里为了方便查看数据,把Docker的端口都与本机进行了映射,对应的本地master/data文件夹和slaver/data文件夹下也能看到同步的数据库文件

3、Master和Slaver设置

//进入master容器
docker exec -it mastermysql bash

//启动mysql命令,刚在创建窗口时我们把密码设置为:anech
mysql -u root -p

//创建一个用户来同步数据
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上

//查看状态,记住File、Position的值,在Slaver中将用到
show master status;
//进入slaver容器
docker exec -it slavermysql bash

//启动mysql命令,刚在创建窗口时我们把密码设置为:anech
mysql -u root -p

//设置主库链接
change master to master_host=‘172.17.0.2‘,master_user=‘backup‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=0,master_port=3306;

//启动从库同步
start slave;

//查看状态
show slaver status;

说明:

master_host:主库地址

master_user:主库创建的同步账号

master_password:主库创建的同步密码

master_log_file:主库产生的日志

master_log_pos:主库日志记录偏移量

master_port:主库使用的端口,默认为3306

参考文献:http://blog.csdn.net/kk185800961/article/details/49235975

http://blog.csdn.net/qq362228416/article/details/48569293

http://www.cnblogs.com/alvin_xp/p/4162249.html

文章出处:http://www.cnblogs.com/anech/p/6721746.html

转载请注名出处,谢谢!

时间: 2025-01-07 10:28:13

Docker Mysql主从同步配置搭建Demo的相关文章

docker mysql 主从同步配置

在centos 中创建两个mysql容器 docker run --name q_master -p 13306:3306  -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest --character-set-server=utf8 --collation-server=utf8_general_ci docker run --name q_slave -p 13307:3306  -e MYSQL_ROOT_PASSWORD=123456 -d mysq

企业生产MySQL主从同步配置

MySQL主从同步配置 前言:测试环境 一台mysql多个实例 主机IP地址 10.0.0.52 Master   3306 Salve    3307 一.主库要开启binlog服务 1. 1修改配置文件3306/my.cnf [[email protected] ~]# egrep "log-bin|server-id" /data/3306/my.cnf   log-bin = /data/3306/mysql-bin server-id = 1 1. 2查看主库有没有开启bin

centos下MySQL主从同步配置

centos下MySQL主从同步配置一.环境 主机: master操作系统:centos 5.3 IP:192.168.1.222 MySQL版本:5.0.77 从机: slave操作系统:centos 5.3 IP:192.168.1.220 MySQL版本:5.0.77 二.创建数据库 分别登录master机和slave机的mysql:mysql –u root –p 创建数据库:create database repl; 三.master机和slave机的相关配置 1.修改master机器

CentOS之MYSQL主从同步配置

一.主机master与salver均关闭防火墙iptables,执行service iptables stop命令: 设置SELINUX文件的SELINUX=disabled,如图所示: 二.创建数据库 分别登录master机和slave机的mysql:mysql –u root –p 创建数据库:create database repl; 在/usr/local/mysql目录下建立MYSQL复制的日志配置文件/usr/local/mysql/mysql-bin.log并赋予权限以及改变文件的

MySQL主从同步配置实现数据库备份

作为数据库的主要备份手段,主从同步能实现从主库(即当前使用的业务数据库)异步同步数据到从库(备份库),当主库数据库或主机出现当机不能启动时,可以通过切换到从库实现业务系统的快速恢复. 首先介绍一下我的环境,我有一个已经使用中的MySQL数据库A,然后我新装了一台MySQL数据库B作为A的从库. 一.master库A设置 先修改mysql的配置 vim /etc/my.cnf 插入下面2行 server-id=1   #这个ID是唯一的,不能和其他的主库或者从库一样 log-bin=mysql-b

Linux下MySQL主从同步配置

Centos6.5 MySQL主从同步 MySQL版本5.6.25 主服务器:centos6.5 IP:192.168.1.101 从服务器:centos6.5 IP:192.168.1.102 一.主服务器相关配置 1.创建同步账户并指定服务器地址 [[email protected] ~]mysql -uroot -p mysql>use mysql mysql>grant replication slave on *.* to 'testuser'@'192.168.1.102' ide

Mysql主从同步配置方案(Centos7)

最近在做项目高可用时,需要使用数据同步.由于只有双节点,且采用主主同步可能存在循环同步的风险,故综合考虑采用Mysql主从同步(Master-Slave同步). 可能没有接触过Mysql数据同步时,可能会觉得数据同步很难,但你按照如下操作一遍之后,会发现原来同步如此简单,毕竟我们只需要会配置,会排查问题,底层具体实现Mysql团队早帮忙实现了.废话不多说,直入话题: (1)首先,保证有两台设备(主.从),分别在两台设备上安装Mysql数据库.安装完成之后, 使用mysql -u[数据库用户名]

Docker Mysql主主同步配置搭建Demo

主主同步配置和主从配置很相似,仅需稍做修改就可以了,对主从配置有疑问可以查看 上一篇文章. 进行Docker操作前,先建立目录,我的路径是d:/docker/mysql,目录结构如下: --mysql    --mone       --data        --conf          --my.cnf        --mtwo       --data        --conf          --my.cnf  1.主主配置文件 Mone: my.cnf [mysqld] ser

Mysql 主从同步配置

工作用MySQL数据库配置了主从同步,但是不知道为啥同步失效了.工作环境不能随便操作,我就在本地上搭建了主从同步的环境. 备份用的工具是Xtrabackup,安装及使用教程见<innobackupex实现MySQL数据库的备份与恢复>. 1.数据库环境 主库(Master):192.168.126.150 从库(Slave):192.168.126.151 数据库版本:5.5.32 2.修改my.cnf文件 1)修改主服务器master: #vi /etc/my.cnf [mysqld] lo