MySQL基于binlog和gtid主从搭建方案

ops/2025/2/9 12:19:27/

MySQL基于binlog和gtid主从搭建方案

一.主库配置

1.1 确认 binlog 是否开启
SHOW VARIABLES LIKE '%log_bin%';
1.2 创建日志目录并设置权限
mkdir -p /opt/mysql/log_bin
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
1.3 修改 my.cnf 配置文件

基于二进制日志(Binlog)文件:

[mysqld]
server-id = 1 #主库的唯一标识
log-bin = /opt/mysql/log_bin/mysql-bin #开启二进制日志,指定文件路径
log_bin_basename = /opt/mysql/log_bin/mysql-bin
log_bin_index = /opt/mysql/log_bin/mysql-bin.index
binlog_format = ROW # 推荐设置为 ROW 格式,确保复制一致性

基于全局事务标识符(GTID):

[mysqld]
server_id = 1
gtid_mode = on
enforce_gtid_consistency = 1
# binlog group commit
binlog_group_commit_sync_delay = 100
binlog_group_commit_sync_no_delay_count = 20
binlog_format = ROW # 建议设置为ROW模式,确保复制时的一致性
log_bin = mysql-bin # 必须开启二进制日志,确保主库有日志可供从库读取
sync_binlog = 1

1.4 创建用于复制的账户并授予权限

CREATE USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
flush privileges;
1.5 查看主库的二进制日志状态
SHOW MASTER STATUS\G;
  • File:表示当前二进制日志文件。

  • Position:表示二进制日志的位置。

1.6 全库导出

使用 mysqldump 进行全库导出。

基于二进制日志(Binlog)文件:

mysqldump -uroot -p --set-gtid-purged=OFF --single-transaction --master-data=2 --all-databases > /home/mysql/quanbei.sql

基于全局事务标识符(GTID):

5.7版本及以上。

mysqldump -uroot -p --set-gtid-purged=OFF --single-transaction --all-databases > /home/mysql/quanbei.sql

从库配置

2.1 修改从库的 my.cnf 配置文件

基于二进制日志(Binlog)文件:

[mysqld]
server-id = 2
read-only = 1  # 设置只读模式
relay_log = /opt/mysql/log_bin/relay-bin # 指定中继日志路径

基于全局事务标识符(GTID):

[mysqld]
server_id = 561013307
gtid_mode = on
enforce_gtid_consistency = 1
report_host = 'slave1' #别名
log_slave_updates = 1
relay_log = /opt/mysql/log_bin/relay-bin # 建议显式指定中继日志
read_only = 1  # 确保从库为只读模式,防止误写
2.2 重启 MySQL 服务
2.3 导入主库的全库数据

将从主库导出的 quanbei.sql 文件复制到目标机器。

mysql -u<用户名> -p<密码>

source /quanbei.sql

开启同步并验证

3.1 配置主从关系

基于二进制日志(Binlog)文件:

CHANGE REPLICATION SOURCE TOSOURCE_HOST = '主库IP',SOURCE_USER = 'xxxxx',SOURCE_PASSWORD = '123456',SOURCE_LOG_FILE = 'mysql-bin.000269',SOURCE_LOG_POS = 604612268;

基于全局事务标识符(GTID):

CHANGEMASTERTOMASTER_HOST='123.123.123.123', -- 主库的 IP 地址MASTER_PORT=3306, -- 主库的端口(通常是 3306)MASTER_USER='repl', -- 用于复制的用户名MASTER_PASSWORD='123456', -- 用于复制的用户密码MASTER_CONNECT_RETRY=10, -- 连接主库失败时的重试间隔时间(秒)MASTER_AUTO_POSITION=1; -- 启用基于 GTID 的复制,自动定位日志位置

-- MySQL 5.7 的命令为 CHANGE MASTER TO,而 MySQL 8.0 则使用 CHANGE REPLICATION SOURCE TO。

3.2 启动从库同步
START SLAVE;  -- 
MySQL 5.7 使用START REPLICA;  -- 
MySQL 8.0 使用
3.3 验证主从同步状态

在主库上查看二进制日志状态:

SHOW MASTER STATUS\G;

在从库上查看复制状态:

SHOW SLAVE STATUS\G;  --
MySQL 5.7SHOW REPLICA STATUS\G;  -- 
MySQL 8.0

http://www.ppmy.cn/ops/156967.html

相关文章

【Linux】28.Linux 多线程(2)

文章目录 5. Linux线程互斥5.1 进程线程间的互斥相关背景概念5.2 互斥量mutex5.2.1 互斥量的接口5.2.2 销毁互斥量5.2.3 互斥量加锁和解锁 5.3 互斥量实现原理探究5.4 互斥量的封装 6. 可重入VS线程安全6.1 常见的线程不安全的情况&#xff1a;6.2 常见的线程安全的情况6.3 常见…

LeetCode 106.从中序与后序遍历序列构造二叉树

题目描述 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7], postorder [9,15,7,20,3] 输出&am…

LIMO:少即是多的推理

25年2月来自上海交大、SII 和 GAIR 的论文“LIMO: Less is More for Reasoning”。 一个挑战是在大语言模型&#xff08;LLM&#xff09;中的复杂推理。虽然传统观点认为复杂的推理任务需要大量的训练数据&#xff08;通常超过 100,000 个示例&#xff09;&#xff0c;但本文展…

OSPF基础(2):数据包详解

OSPF数据包(可抓包) OSPF报文直接封装在IP报文中&#xff0c;协议号89 头部数据包内容&#xff1a; 版本(Version):对于OSPFv2&#xff0c;该字段值恒为2(使用在IPV4中)&#xff1b;对于OSPFv3&#xff0c;该字段值恒为3(使用在IPV6中)。类型(Message Type):该OSPF报文的类型。…

51单片机看门狗系统

在 STC89C52 单片机中&#xff0c;看门狗控制寄存器的固定地址为 0xE1。此地址由芯片厂商在硬件设计时确定&#xff0c;但是它在头文件中并未给出&#xff0c;因此在使用看门狗系统时需要声明下这个特殊功能寄存器 sfr WDT_CONTR 0xE1; 本案将用一个小灯的工作状况来展示看门…

unity碰撞的监测和监听

1.创建一个地面 2.去资源商店下载一个火焰素材 3.把procedural fire导入到自己的项目包管理器中 4.给magic fire 0 挂在碰撞组件Rigidbody , Sphere Collider 5.创建脚本test 并挂在magic fire 0 脚本代码 using System.Collections; using System.Collections.Generic; usi…

redis高级数据结构布隆过滤器

文章目录 背景什么是布隆过滤器Redis 中的布隆过滤器布隆过滤器使用注意事项实现原理空间占用估计 背景 我们在使用新闻客户端看新闻时&#xff0c;它会给我们不停地推荐新的内容&#xff0c;它每次推荐时要去重&#xff0c;去掉那些已经看过的内容。问题来了&#xff0c;新闻…

DeepSeek 引发 AI 大模型战火,编程语言群雄激战谁夺胜利权杖?

随着人工智能领域的飞速发展&#xff0c;AI 大模型如璀璨星辰般不断涌现&#xff0c;DeepSeek 作为其中备受瞩目的一员&#xff0c;凭借其强大的性能和广泛的应用潜力吸引了众多关注。在大模型的开发与应用过程中&#xff0c;编程语言的选择起着至关重要的作用。 博主主页&…