首页 > 数据库 >Mysql 8.4.0 结合 Docker 搭建GTID主从复制,以及传统主从复制

Mysql 8.4.0 结合 Docker 搭建GTID主从复制,以及传统主从复制

时间:2024-06-07 18:55:17浏览次数:17  
标签:主从复制 8.4 mysql SOURCE 复制 Mysql 从库

注意:本教程不适用旧版本,Mysql 8.4.0 和 旧版本,主从复制相关命令有所变化,具体区别请看文末参考

软件版本

Docker:26.1.3

Mysql:8.4.0

 

GTID主从复制

1.准备主从两台服务器

2.两台服务器分别创建DockerCompose文件

services:
  mysql:
    image: mysql:8.4.0
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: abc123
    volumes:
      - ./data:/var/lib/mysql
      - ./config:/etc/mysql/conf.d
    restart: always

3.主库服务器导入配置到 config/my.cnf

[mysqld]
gtid_mode=ON
enforce-gtid-consistency=ON

4.从库服务器导入配置到 config/my.cnf

[mysqld]
gtid_mode=ON
enforce-gtid-consistency=ON
server-id = 2

5.启动两个容器

6.主库创建复制账户

CREATE USER 'repl' IDENTIFIED BY 'abc123';
GRANT REPLICATION SLAVE ON *.* TO 'repl';

7.从库接入

7.1.配置复制源:

CHANGE REPLICATION SOURCE TO
 SOURCE_HOST = '192.168.1.113',
 SOURCE_PORT = 3306,
 SOURCE_USER = 'repl',
 SOURCE_PASSWORD = 'abc123',
 SOURCE_AUTO_POSITION = 1,
 SOURCE_SSL = 1;

7.2.启动复制进程:

START REPLICA;

7.3.查看复制状态:

SHOW REPLICA STATUS;

主要看这两个,都是Yes代表就绪

两个扩展SQL:

停止复制进程:STOP REPLICA;

重置复制配置:RESET REPLICA ALL;

8.主从复制配置完毕

接下来所有主库的变化都会同步到从库,但是要注意,从库非只读状态,要杜绝直接修改从库,否则可能会导致冲突。

 

传统主从复制

1.准备主从两台服务器

2.两台服务器分别创建DockerCompose文件

services:
  mysql:
    image: mysql:8.4.0
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: abc123
    volumes:
      - ./data:/var/lib/mysql
      - ./config:/etc/mysql/conf.d
    restart: always

3.从库服务器导入配置到 config/my.cnf

[mysqld]
server-id = 2

4.启动两个容器

5.主库创建复制账户

CREATE USER 'repl' IDENTIFIED BY 'abc123';
GRANT REPLICATION SLAVE ON *.* TO 'repl';

5.查看主库日志文件名、指针

执行SQL:SHOW BINARY LOG STATUS;

6.从库接入

6.1.配置复制源:

填入主库的文件名、指针

CHANGE REPLICATION SOURCE TO
 SOURCE_HOST='192.168.1.113',
 SOURCE_USER='repl',
 SOURCE_PASSWORD='abc123',
 SOURCE_LOG_FILE='binlog.000002',
 SOURCE_LOG_POS=682,
 SOURCE_SSL = 1;

6.2.启动复制进程:

START REPLICA;

6.3.查看复制状态:

SHOW REPLICA STATUS;

主要看这两个,都是Yes代表就绪

两个扩展SQL:

停止复制进程:STOP REPLICA;

重置复制配置:RESET REPLICA ALL;

7.主从复制配置完毕

接下来所有主库的变化都会同步到从库,但是要注意,从库非只读状态,要杜绝直接修改从库,否则可能会导致冲突。

 

参考

MySQL :: MySQL 8.4 Reference Manual :: 19.1.2 Setting Up Binary Log File Position Based Replication

MySQL :: MySQL 8.4 Reference Manual :: 19.1.3.4 Setting Up Replication Using GTIDs

MySQL 8.4.0 LTS 变更解析:MySQL 的复制与组复制 - 墨天轮 (modb.pro)

标签:主从复制,8.4,mysql,SOURCE,复制,Mysql,从库
From: https://www.cnblogs.com/yfeil/p/18237529

相关文章

  • linux安装mysql8并配置主从
    服务器10.213.3.68DBmaser10.213.3.69DBslave都安装mysql8安装包,解压mysql-8.0.35-linux-glibc2.17-x86_64.tar.xz[root@DB-mastermysql8]#lsbindocsincludelibLICENSEmanREADMEsharesupport-files优化过的配置文件[mysqld]server-id=1log-bin=mys......
  • Mysql基础进阶速成2
    看着篇文章之前先看我的前一章:MySQL基础进阶速成1函数:每个字段使用一个函数:select+函数(字段名)+from+表名upper:将字符串中的字母大写lower:将字符串中的字符小写max:得到最大值min:得到最小值count:计数avg:平均数length:获取字符串长度........selectupper(name)fro......
  • MySQL随笔
    1、隔离级别innoDB通过间隙锁锁定查询范围避免被其他事物修改未提交读(导致脏读)、已提交读(导致不可重复读)、可重复读(mysql默认,导致幻读)、串行化 脏读:事物执行的过程读到其他事物未提交的数据不可重复读:事物a在多次读取某数据时,事物b进行了修改,导致食物a两......
  • mysql8 无法连接navicat问题
    1、修改MySQL的配置文件(my.cnf或者my.ini),在[mysqld]部分添加或者修改default_authentication_plugin=mysql_native_password。重启mysql服务2、创建或修改用户并设置密码:如果您还没有 root 用户从任何主机连接的权限,您需要首先以具有足够权限的用户(通常是本地 root 用户)登录......
  • MySQL中InnoDB引擎行数据过大对B+树存储的影响
    效率工具推荐一个程序员常用的工具网站:程序员常用工具(http://cxytools.com),有时间戳、JSON格式化、文本对比、HASH生成、UUID生成等常用工具,效率加倍嘎嘎好用。小报童专栏精选Top100推荐一个小报童专栏导航站:小报童精选Top100(http://xbt100.top),收录了生财有术项目精选、A......
  • ubuntu 22.04 安装MySQL8后的基本设置
    安装sudoaptupdatesudoaptupgradesudoaptinstallapache2mysql-serverphplibapache2-mod-phpphp-mysql初始化配置MySQL初始化配置以及设置root密码初始化MySQL安全配置sudomysql_secure_installation这个命令会提示您进行一系列的安全设置,包括:是否......
  • 超级详细的mysql数据库安装指南
    如果你的电脑是windows,参考下面的安装步骤。一、下载mysql数据库进入MySQL官方网站(MySQLCommunityDownloads),按下图顺序点击“进入下载页面 在下载页面拉到最下面会看到下图中的安装软件 MSIInstaller注意有两个,这两个有什么区别呢?第一个(大小是10多M)是联网在线安装,会......
  • 谈谈Redis缓存中MySQL的数据如何与Redis同步
    在现代应用程序中,性能和响应速度是至关重要的。为了提高数据访问速度,常常会使用缓存技术。Redis作为一种高性能的内存数据库,常被用作缓存层,而MySQL则作为持久化存储层。如何有效地将MySQL数据与Redis缓存进行同步,是一个关键问题。本文将详细探讨Redis作为缓存时,http://ww......
  • 基于Java+SpringBoot+Mysql实现的协同过滤推荐旅游景点平台设计与实现
    一、前言介绍:1.1项目摘要随着人们生活水平的提高和休闲时间的增多,旅游已成为人们生活中不可或缺的一部分。然而,传统的旅游方式往往存在信息不对称、服务质量参差不齐、行程安排不够灵活等问题,给游客带来了诸多不便。与此同时,互联网技术的快速发展为旅游行业带来了革命性......
  • 基于Java+SpringBoot+Mysql实现的在线电影订票系统设计与实现
    一、前言介绍:1.1项目摘要在线电影订票系统的课题背景主要源于现代社会的信息化、网络化发展趋势以及人们对便捷、高效生活方式的追求。随着互联网技术的飞速发展和普及,人们的生活方式正在发生深刻的变化。在线购物、在线支付、在线预订等网络服务已经渗透到人们日常生活......