详解MySQL主从复制实战 – 基于GTID的复制

详解MySQL主从复制实战 - 基于GTID的复制

简介

MySQL主从复制是MySQL数据库中常见的一种复制结构,可以实现数据的自动同步和备份。基于GTID的复制是一种相对较新且更稳定、更可靠的复制方式。本文将详细讲解基于GTID的MySQL主从复制实战过程。

环境准备

在进行MySQL主从复制之前,我们需要有两个MySQL实例,其中一个是主库,另一个是从库。

以下是两个MySQL实例的配置信息:

主库:

  • IP地址:192.168.0.101
  • 数据库名:test
  • 用户名:root
  • 密码:123456

从库:

  • IP地址:192.168.0.102
  • 数据库名:test
  • 用户名:root
  • 密码:123456

主库配置

  1. 修改主库my.cnf配置文件

在主库的my.cnf配置文件中添加以下配置信息:

server-id=1
log-bin=mysql-bin
binlog-format=ROW
gtid-mode=on
enforce-gtid-consistency=true
  1. 创建一个名为replica的从库用户

可以使用以下命令在主库中创建一个名为replica的从库用户:

CREATE USER 'replica'@'192.168.0.102' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.0.102';
  1. 查看主库状态

在主库上执行以下命令查看主库状态:

SHOW MASTER STATUS;

记录下File和Position的值,稍后在从库配置中需要使用。

从库配置

  1. 修改从库my.cnf配置文件

在从库的my.cnf配置文件中添加以下配置信息:

server-id=2
gtid-mode=on
enforce-gtid-consistency=true
  1. 启动从库

在从库上启动MySQL实例:

service mysql start 
  1. 将主库数据复制到从库

在从库上执行以下命令将主库数据复制到从库:

CHANGE MASTER TO MASTER_HOST='192.168.0.101',MASTER_USER='replica',MASTER_PASSWORD='123456',MASTER_AUTO_POSITION=1;
START SLAVE;
  1. 查看从库状态

在从库上执行以下命令查看从库状态:

SHOW SLAVE STATUS\G 

可以查看到GTID相关的信息已经被同步。

示例1:在主库修改数据并观察从库同步情况

在主库中修改一条记录:

UPDATE user SET name='Lucy' WHERE id=1;

重新查看主库状态,可以看到File和Position已经发生了变化。在从库上查看复制情况:

SHOW SLAVE STATUS\G 

可以看到GTID相关的信息已经被同步,表数据也已经被同步到从库。

示例2:在从库添加数据并观察主库同步情况

在从库中添加一条记录:

INSERT INTO user (name, age) VALUES ('Tom', 20);

在主库上查询数据:

SELECT * FROM user;

可以看到数据已经被同步到主库。

结束

本文详细讲解了基于GTID的MySQL主从复制实战过程,包括主库和从库的配置,以及示例数据的同步情况演示。希望对MySQL主从复制有兴趣的读者有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解MySQL主从复制实战 – 基于GTID的复制 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • SQL优化处理

    1、通过慢查日志等定位那些执行效率较低的SQL语句 2、explain 分析SQL的执行计划 需要重点关注type、rows、filtered、extra。       type由上至下,效率越来越高              ALL 全表扫描              index 索引全扫描              range 索引范围扫描,常用语&lt…

    MySQL 2023年4月25日
    00
  • 从零开始学习MySQL调试跟踪(1)

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 作者: Yejinrong/叶金荣 文章来源:GreatSQL社区投稿 编译GreatSQL 安装gdb 开始调试GreatSQL源码 3.1 利用gdb设置断点 3.2 使用 Trace 文件调试 有时为了跟踪…

    MySQL 2023年4月17日
    00
  • MySQL定义异常和异常处理详解

    MySQL 定义异常和异常处理详解 MySQL 中的异常处理是程序技术人员在编程过程中经常需要掌握的一种技能。当程序出现异常时,可以捕捉到异常并进行相应的处理。本文将会详细讲解 MySQL 中的异常定义和异常处理的方法。 定义异常 在 MySQL 中,异常是一种异常情况,它可以在程序执行期间被抛出。当程序出现异常时,会导致程序终止或执行出错。为了更好地控制程…

    MySQL 2023年5月18日
    00
  • MySQL 增删改查

    一、mysql的增查改删 – 增加一条数据:insert into insert into tb_name(column1, column2) values(v1, v2); #如: mysql> insert into student(name, age) values(‘lina’, 17); 查找数据:select SELECT column1,…

    MySQL 2023年4月13日
    00
  • 如何在MySQL中设置外键约束以及外键的作用

    1.外键的作用,主要有两个:   一个是让数据库自己通过外键来保证数据的完整性和一致性   一个就是能够增加ER图的可读性 2.外键的配置    1)先创建一个主表,代码如下:    #创建表student,并添加各种约束   create table student ( id int primary key , #主键约束 name varchar(20)…

    MySQL 2023年4月13日
    00
  • MySQL存储过程参数的用法及说明

    下面是详细讲解“MySQL存储过程参数的用法及说明”的完整攻略。 存储过程参数的用法说明 存储过程是MySQL数据库中一种重要的对象,它是一组预编译的SQL语句,可以在需要的时候被调用执行。在MySQL存储过程中,存储过程参数是非常常见的,参数可以传递给存储过程,也可以从存储过程返回。 下面是存储过程参数的用法说明: 存储过程参数的类型 MySQL存储过程参…

    MySQL 2023年5月18日
    00
  • 一文搞懂MySQL持久化和回滚的原理

    一文搞懂MySQL持久化和回滚的原理 1. 持久化和回滚的概念 在数据库中,持久化指的是在数据被写入磁盘后仍能保持其状态的能力,即使数据库服务器意外关闭,也能够恢复之前的状态。而回滚指的是当操作失误或出错时,撤销已完成的操作,回到未完成操作前的状态。 2. MySQL持久化技术 MySQL使用了多种持久化技术来确保数据的可靠性,其中最常用的是日志和InnoD…

    MySQL 2023年5月19日
    00
  • 如何解决mysqlimport: Error: 13, Can’t get stat of 的问题

    针对mysqlimport: Error: 13, Can’t get stat of的问题,一般是由于文件的权限导致的,接下来我将为你提供完整的解决攻略,主要包括以下内容: 导致问题的原因 解决方案 设置文件权限 切换用户 示例说明 1. 导致问题的原因 当我们使用mysqlimport命令导入数据时,可能会遇到以下错误提示: mysqlimport: E…

    MySQL 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部