首页 > 数据库 >MySQL主从复制中启用GTID(全局事务标识符)模式

MySQL主从复制中启用GTID(全局事务标识符)模式

时间:2024-09-24 08:52:10浏览次数:8  
标签:主库 主从复制 复制 MASTER MySQL 服务器 从库 GTID

在MySQL中启用GTID(全局事务标识符)模式进行主从复制涉及几个步骤。GTID为每个事务赋予一个唯一的标识符,从而简化了复制过程和故障恢复。以下是启用GTID模式的基本步骤:

首先确保两台数据库目前数据保持一致

1. 准备工作
确保您使用的MySQL版本支持GTID。GTID从MySQL 5.6版本开始支持。

2. 配置主服务器
在主服务器的my.cnf(或my.ini)配置文件中,添加以下配置项:

[mysqld]
gtid_mode = ON
enforce_gtid_consistency = ON
log-bin=mysql-bin
log_slave_updates
binlog_format = ROW
server_id = 1


这里的server_id应该是唯一的。

3. 配置从服务器
在从服务器的配置文件中,添加类似的配置:

[mysqld]
gtid_mode = ON
enforce_gtid_consistency = ON
read_only = ON
log-bin=mysql-bin
log_slave_updates
binlog_format = ROW
server_id = 2


确保每个从服务器有一个唯一的server_id。

4. 重启MySQL服务器
更改配置后,需要重启MySQL服务器以使更改生效。
2台都需要重启MySQL
systemctl restart mysqld

5. 在主服务器上创建复制用户
登录到主服务器,然后创建一个用于复制的用户:

CREATE USER 'replica'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';

 

6. 设置从服务器
在从服务器上,配置复制:

CHANGE MASTER TO
MASTER_HOST='主服务器IP',
MASTER_USER='replica',
MASTER_PASSWORD='password',
MASTER_AUTO_POSITION = 1;


这里的MASTER_AUTO_POSITION = 1表示使用GTID模式。

7. 启动从服务器上的复制

START SLAVE;


8. 验证复制状态
在从服务器上执行以下命令,检查复制状态:

SHOW SLAVE STATUS\G


查看Slave_IO_Running和Slave_SQL_Running两个字段,确保它们都是Yes。

注意事项
在启用GTID之前,确保主从服务器的数据是一致的。
执行这些步骤时,建议有数据库管理的经验,因为不正确的操作可能会导致数据丢失或服务中断。
在生产环境中更改配置之前,建议在测试环境中进行尝试。
以上步骤提供了一个基本的指南,但具体的操作可能会根据您的具体环境和需求有所不同。

在MySQL数据库使用GTID(全局事务标识符)进行主从同步时,如果出现问题导致同步出错,您可以通过以下步骤来重新同步从库:

确认主从状态:

确认主库和从库的状态,特别是GTID的执行和复制情况。
使用 SHOW MASTER STATUS; 在主库上查看当前的二进制日志文件和位置。
使用 SHOW SLAVE STATUS\G; 在从库上查看复制状态,特别注意 Last_IO_Errno, Last_IO_Error, Last_SQL_Errno, 和 Last_SQL_Error 字段。
备份从库数据(可选,但推荐):

在进行任何重大操作之前,建议备份从库的数据。
停止从库的复制线程:

在从库上执行以下命令来停止复制:

STOP SLAVE;

 

重置从库的GTID信息:

在从库上重置GTID信息,准备重新同步:

RESET SLAVE ALL;


获取主库的GTID信息:

在主库上执行 SHOW MASTER STATUS; 获取当前的GTID集合。
配置从库指向主库:

在从库上配置主库的连接信息,包括主库的IP地址、端口、用户和密码,以及主库的GTID集合。例如:

CHANGE MASTER TO
MASTER_HOST='主库IP',
MASTER_USER='复制用户',
MASTER_PASSWORD='复制密码',
MASTER_AUTO_POSITION = 1;


启动从库复制:

在从库上执行以下命令来启动复制:

START SLAVE;


检查复制状态:

再次在从库上执行 SHOW SLAVE STATUS\G; 来确认复制状态。特别关注 Slave_IO_Running 和 Slave_SQL_Running 是否都是 Yes,以及 Seconds_Behind_Master 的值。
请注意,重新同步可能涉及复杂的步骤,尤其是在生产环境中。在执行这些操作之前,请确保您对当前的系统状态有充分的了解,并考虑在数据库管理员或专家的指导下进行。如果对数据的一致性和完整性有特别的要求,务必先进行适当的备份和测试。

当然也可以不用GTID

CHANGE MASTER TO
MASTER_HOST='192.168.145.2',
MASTER_USER='replication',
MASTER_PASSWORD='P@ssw0rd',
MASTER_AUTO_POSITION = 0,
MASTER_LOG_FILE='mysql-bin.004909',MASTER_LOG_POS=20518821;

 

标签:主库,主从复制,复制,MASTER,MySQL,服务器,从库,GTID
From: https://www.cnblogs.com/shujuyr/p/18428316

相关文章

  • 无法使用我的 pip 安装 mysql-connector
    我正在尝试使用pip安装mysql连接器,但它一直向我显示此错误:连接被'ProxyError('无法连接到代理。',TimeoutError('timedout'))':/simple/mysqlx-connector/|中断||我认为这可能是我所在地区过滤的结果因为我是初学者,不知道如何解决问题或问题是什么。有人可以帮我吗?......
  • MySQL 5.7 Command Line Client 闪屏退出
    MySQL5.7CommandLineClient 闪屏退出 解释:MySQL5.7CommandLineClient闪屏退出可能是因为缺少某些环境变量配置,或者是MySQL安装过程中出现了问题。解决方法:   检查环境变量:确保PATH环境变量中包含了MySQL的bin目录路径。在Windows系统中,可以在系统属性的“高级”......
  • “MySQL 查询反馈全解析:揭开消息、摘要、状态、结果及警告(错误)的神秘面纱”(详细)
    在MySQL中,当您运行查询时,通常会显示几个主要的标签或部分。这些部分通常包括消息(Message)、摘要(Summary)、状态(Status)、结果(Results)以及警告或错误(Warnings/Errors)。以下是这些部分的详细解释:消息(Message):这是一个简要的反馈区,显示查询执行的结果信息。如果查询执行成功......
  • navicat无法连接远程mysql数据库1130报错的解决方法
    出现报错:1130-Host'ipaddress'isnotallowedtoconnecttothisMySQLservenavicat,当前ip不允许连接到这个MySQL服务解决当前ip无法连接远程mysql的方法1.查看mysql端口,并在服务器安全组中放开相应入方向端口后重启服务器sudonetstat-tulnp|grepmysql查看端......
  • 828华为云征文|华为云 Flexus 云服务器 X 实例:在openEuler系统下搭建MySQL主从复制
    828华为云征文|华为云Flexus云服务器X实例:在openEuler系统下搭建MySQL主从复制前言一、Flexus云服务器X实例介绍1.1Flexus云服务器X实例简介1.2Flexus云服务器X实例特点1.3Flexus云服务器X实例使用场景二、MySQL数据库介绍2.1MySQL简介2.2MySQL主要特点2.3MySQ......
  • mysqldump 远程备份 mysql
    mysqldump远程备份使用mysqldump进行远程数据库备份,你需要具备远程服务器的访问权限,并且确保远程服务器的MySQL服务允许远程连接。mysqldump-uroot-ppassword-h192.168.1.100mydatabase>backup.sql mysqldump指令如下: mysqldump-h[服务器IP]-P[mysql端口号......
  • mysql数据库 - openEuler安装
    文章目录一、openEuler系统介绍1.1、openEuler系统的起源1.2、openEuler系统的特点1.3、openEuler系统的版本支持二、环境搭建2.1、修改静态地址2.2、修改主机名称2.3、关闭防火墙或放通端口2.4、关闭selinux三、安装mysql数据库3.1、安装mysql3.2、配置mysql数据库及......
  • 第二十三讲:MySQL是怎么保证主备一致的?
    第二十三讲:MySQL是怎么保证主备一致的?简概开篇​ 在前面的文章中,我不止一次地和你提到了binlog,大家知道binlog可以用来归档,也可以用来做主备同步,但它的内容是什么样的呢?为什么备库执行了binlog就可以跟主库保持一致了呢?今天我就正式地和你介绍一下它。毫不夸张地说,MySQ......
  • mysql 语法1
    1、注释单行--多行/**/2、SQL分类主要分为四类DDL、DML、DQL、DCLDDLDataDefinitionLanguage,数据定义语言,用来定义数据库对象(数据库,表,字段)常用指令CREATE:在数据库中创建对象ALTER:更改数据库的结构DROP:从数据库中删除对象TRUNCATE:从表中删除所有记录,包括为记录分......
  • mysqldump Windows 定期自动 备份 mysql
    Windows平台:定期自动备份mysql    一,确定mysqldump.exe 的位置C:\ProgramFiles\MySQL\MySQLServer5.7\bin 二 打开高级系统设置,设置环境变量可右击此电脑——> 点击属性 点击高级系统设置  点击环境变量 编辑系统变量中的Path  设......