详解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日

相关文章

  • 详解MySQL使用GROUP BY分组查询

    MySQL中GROUP BY语句用于将数据行按照一个或多个列进行分组,然后对每个组进行聚合计算。在GROUP BY语句中,可以使用聚合函数对每个组进行计算,例如SUM、AVG、MAX、MIN、COUNT等。 以下是GROUP BY语句的一般语法: SELECT column1, column2, …, aggregate_function(column_…

    MySQL 2023年3月9日
    00
  • MySQL优化GROUP BY(松散索引扫描与紧凑索引扫描)

    MySQL中的GROUP BY语句可以用于将相似的数据分组并计算其汇总值。但是,当数据集很大时,GROUP BY语句对性能的影响也会很大。本文将详细讲解如何通过松散索引扫描和紧凑索引扫描来优化MySQL中的GROUP BY语句。 松散索引扫描优化 在MySQL中,使用GROUP BY语句分组时,如果不指定排序(ORDER BY)的话,MySQL会随机选择一个…

    MySQL 2023年5月19日
    00
  • MySQL的复合索引总结

    MySQL是一款常用的关系型数据库,索引是MySQL中优化查询性能的重要手段。复合索引是一种在多列上创建的索引,相比于单列索引,复合索引能够更加精确的定位需要检索的数据。 复合索引概述 复合索引是在多个列上创建的索引,可以通过查询中的多个条件来定位到符合条件的数据。对于多个列的查询,复合索引优于单列索引,因为单列索引不能够覆盖所有查询列的数据。 复合索引的创…

    MySQL 2023年5月19日
    00
  • mysql8.0.14.zip安装时自动创建data文件夹失败服务无法启动

    首先,根据描述可以得知,在安装mysql8.0.14.zip时,自动创建data文件夹失败导致无法启动服务。针对此问题,我们可以采取以下步骤进行解决: 1.手动创建data文件夹 在zip安装包解压后的目录下,找到mysql-8.0.14-winx64文件夹,进入该文件夹下的bin目录,在地址栏输入cmd打开命令行窗口。 在命令行窗口内运行如下命令: mkd…

    MySQL 2023年5月18日
    00
  • MySQL恢复数据库(mysql命令)

    MySQL是一个流行的关系型数据库管理系统,它可以帮助用户快速有效地管理和存储数据,使用MySQL也可以遇到各种问题,而其中最常见的问题之一就是数据库损坏。为了解决这个问题,MySQL提供了恢复数据库的命令,接下来就来详细讨论如何使用mysql命令恢复数据库。 步骤一:备份数据库 在执行任何数据恢复操作之前,请务必备份数据库,以防在恢复过程中出现不可逆的错误…

    MySQL 2023年3月10日
    00
  • 微信小程序连接MySQL数据库的全过程

    连接 MySQL 数据库的过程可以分为以下几个步骤: 1. 创建数据库 在 MySQL 中通过 SQL 语句来创建一个新的数据库,例如: CREATE DATABASE database_name CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; 其中 database_name 是你想要创建的数据库的名称,utf8mb…

    MySQL 2023年5月19日
    00
  • 一些mysql启动参数的说明和优化方法

    下面是“一些MySQL启动参数的说明和优化方法”的完整攻略。 MySQL启动参数的说明 MySQL启动参数是指在启动时指定的MySQL运行时参数,它们可以控制MySQL的各种行为。下面是一些主要的启动参数: –port=端口号 指定MySQL监听的端口号,缺省为3306端口。 –bind-address=IP地址 指定MySQL运行的IP地址,如果指定为…

    MySQL 2023年5月19日
    00
  • MySQL8.0升级的踩坑历险记

    MySQL8.0升级的踩坑历险记 最近,我们的网站需要升级MySQL数据库,由于之前的版本较老,我们决定升级至MySQL8.0版本。在升级的过程中,我们踩了很多坑,现在来总结一下我们的经验,希望对其他人有所帮助。 1.备份原数据库 首先,升级之前一定要备份好原来的数据库。可以使用mysqldump命令备份整个数据库,也可以备份某些表或者某些数据。以下是备份整…

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