mysql5.6版本基于GTID双主-docker方式-新环境没有数据

#(0)环境规划

mysql版本:5.6
master01 :  192.168.19.131
master02 : 192.168.19.132

#(1)安装docker和docker-compose

curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce-17.06.0.ce-1.el7.centos.x86_64 -y
systemctl enable docker
systemctl  start docker
cat > /etc/docker/daemon.json <<EOF
{
     "registry-mirrors": ["https://ui5lsypg.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

sudo curl -L https://mirrors.aliyun.com/docker-toolbox/linux/compose/1.21.2/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

#(2)准备目录

mkdir /mysql3307/{data,conf} -pv
mkdir /temp/docker/compose/ -pv 

#(3)master01 和 master02 的配置文件
注意修改server-id和 auto_increment_offset

#cat /mysql3307/conf/my.cnf
[mysqld]
#basic
character-set-server=utf8
lower_case_table_names=1
skip-name-resolve
max_connections = 10000
user=mysql
port=3306
datadir=/mysql3307/data
socket=/var/lib/mysql/mysql.sock
pid-file=/var/run/mysql/mysql.pid
log_error=/var/log/mysql/error.log
default_time_zone = ‘+8:00‘
explicit_defaults_for_timestamp=true

#slow log
slow_query_log = 1
long_query_time = 1

#lock
innodb_lock_wait_timeout=50
lock_wait_timeout=50
innodb_autoinc_lock_mode=2

#innodb
innodb_file_per_table=ON
innodb_buffer_pool_size=128M

#redo log
innodb_flush_log_at_trx_commit=1
innodb_support_xa=ON
innodb_log_file_size=16M
innodb_log_files_in_group=2
innodb_log_group_home_dir=./ 

#binlog
sync_binlog=1
binlog_format=row
max_binlog_size=1073741082
log-bin=master01
expire_logs_days = 7

#Replication availability
master-info-repository=TABLE
relay-log-info-repository=TABLE
relay_log_recovery=1
sync_relay_log=1
sync_relay_log_info=1

#flush
innodb_io_capacity=200
innodb_flush_neighbors=0 

#gtid
server-id=1
gtid-mode=on
enforce-gtid-consistency=true
auto_increment_offset=1
auto_increment_increment=2
log-slave-updates=true

#(4)compose文件

#cat /temp/docker/mysql3307/mysql3307.yaml
version: ‘2.2‘
services:
    mysql3307:
        hostname: mysql3307
        container_name: mysql3307
        restart: always
        image: registry.cn-hangzhou.aliyuncs.com/wangfang-dev/mysql:5.6
        ports:
            - 3307:3306
        volumes:
            - /mysql3307/conf:/etc/mysql/conf.d
            - /mysql3307/data:/var/lib/mysql
        environment:
            MYSQL_ROOT_PASSWORD: 123456
        cpus: 1
        mem_limit: 2048m

#(5)启动容器

docker-compose -f /temp/docker/mysql3307/mysql3307.yaml up -d

两台容器正常启动成功

#(6)在master01上配置复制权限

    docker exec -it mysql3307 bash
    mysql -uroot -p123456
    grant replication slave,replication client on *.* to ‘rep‘@‘%‘ identified by ‘rep‘;

#(7)在master02发起连接以及验证

    docker exec -it mysql3307 bash
    mysql -uroot -p123456
    change master to master_host=‘192.168.19.131‘,master_user=‘rep‘,master_password=‘rep‘,master_port=3307,master_auto_position=1;
    start slave;
    show slave status\G

#(8)在master01上发起连接以及验证

docker exec -it mysql3307 bash
mysql -uroot -p123456
change master to master_host=‘192.168.19.132‘,master_user=‘rep‘,master_password=‘rep‘,master_port=3307,master_auto_position=1;
start slave;

#(9)分别在master01和master02 进行dml, dcl语句验证
master01上

master02上

master01上

master02上

master01上

原文地址:https://blog.51cto.com/1000682/2356977

时间: 2024-07-31 13:53:51

mysql5.6版本基于GTID双主-docker方式-新环境没有数据的相关文章

mysql5.6版本基于GTID双主-docker方式-主库有数据

#(0)环境规划 mysql版本:5.6 master01 : 192.168.19.131 master02 : 192.168.19.132 #(1)安装docker和docker-compose curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install docker-ce-17.06.0.ce-1.el7.cento

mysql5.7.24 gtid双主复制+atlas+keepalived

一环境介绍: 系统: centos7 [root@mgr01 ~]# cat /etc/hosts 10.0.0.6 pxc01 10.0.0.7 pxc02 [root@pxc02 ~]# cat /etc/hosts 10.0.0.6 pxc01 10.0.0.7 pxc02 关闭selinux:vim /etc/sysconfig/selinuxgetenforce 保证服务器时间同步: ntpdate ntp1.aliyun.com */5 * * * * ntpdate ntp1.al

CentOS6.8下MySQL5.6.40基于GTID主从及多线程复制

大纲 一 GTID简介 二 环境准备 三 数据库的安装 四 基于GTID主从配置步骤 五 验证GTID复制功能 一 GTID简介 GTID(Global Transaction ID)是对于一个已提交事务的编号,并且是一个全局唯一的编号.GTID实际上是由UUID+TID组成的.其中UUID是一个MySQL实例的唯一标识.TID代表了该实例上已经提交的事务数量,并且随着事务提交单调递增.下面是一个GTID的具体形式3E11FA47-71CA-11E1-9E33-C80AA9429562:23更详

mysql5.6,基于GTID的主从同步与延迟复制

GTID相关: 在mysql5.6之前,mysql主从复制是slave通过配置master的binlog位置实现的,且每一个slave自身的binlog却不同.而在mysql5.6版本后引入了GTID(全局事务标识符),这个值在master生成,slave只要在开启主从复制时指定master的用户,密码,就可获取master的GTID实现同步,而无需再每次去查看master的binlog位置,大大方便了主从同步的配置.GTID的唯一性强化了数据的主备一致性,故障恢复,以及容错能力. 延迟复制相关

MySQL5.6.x 基于GTID的多线程复制-安装配置

操作系统: RHEL6 Or CentOS6 x86_64 mysql 版本: mysql-5.6.20 服务器IP: 10.57.1.131 MySQL-Master 10.57.1.132 MySQL-Slave 一.yum安装mysql # 下载mysql的rpm包 mkdir -pv /root/soft cd /root/soft #这里提供三个版本的官方64位rpm下载路径,根据自己的系统平台选择对应的rpm下载 # RHEL6 And CentOS6 x86_64 的rpm包 wg

初识MariaDB之9——keepalive+GTID双主实现高可用

一.背景介绍 传统的主从复制架构下,尽管可以使用半同步的方式进行读写分离,但是主节点仍然存在单点隐患,在规模不大的情况下可以采用keepalive+双主的模式对主节点进行高可用保护,客户端通过VIP访问MySQL服务器 二.实现方式 keepalive是通过vrrp协议实现,之前有过介绍这里不多赘述,要注意的是在云主机是禁用vrrp协议的.本次实验采用CentOS7.4,数据库版本为MariaDB-10.2.14,2台MySQL服务器互为主从,172.16.10.30/24为keepalived

MySQL-5.6.14基于GTID及多线程的复制

实验环境 RHEL-6.6-x86_64 两台主机 MASTER 192.168.1.5      hostname : master.mingxiao.info SLAVE 192.168.1.6         hostname : slave.mingxiao.info GTID简介 GTID(Global Transaction Identifier)是每一个事务提交时创建的一个全局唯一的标示符. GTID由UUID:TID组成. MySQL的UUID是怎么获得的呢?当启动MySQL时,

mysql5.7.26 基于GTID的主从复制环境搭建

简单工作原理: (1)从库执行 change master to 语句,会立即将主库信息记录到master.info中 (2)从库执行 start slave语句,会立即生成IO_T和SQL_T (3)IO_T 读取master.info文件,获取到主库信息 (4)IO_T 连接主库,主库会立即分配一个DUMP_T,进行交互 (5)IO_T 根据master.info binlog信息,向DUMP_T请求最新的binlog (6)主库DUMP_T,经过查询,如果发现有新的,截取并反回给从库IO_

基于keepalived双主模型的高可用LVS

背景知识: keepalived:Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web 服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器. LVS:LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统. 实验系统:CentO