MySQL复制之GTID复制的具体使用

yizhihongxing

当我们在MySQL数据库中使用GTID复制时,可以使用以下步骤:

1. 确认主服务器上gtid_mode已经配置为ON

在主服务器上执行以下语句可以确认gtid_mode已经被开启:

SHOW VARIABLES LIKE 'gtid_mode';

如果gtid_mode值为OFF,则需要更新MySQL配置文件,将以下行添加到MySQL配置文件中:

[mysqld]
gtid_mode = ON

重启MySQL以使更改生效。

2. 创建具有复制权限的用户

在主服务器上创建具有复制权限的用户。

CREATE USER replication_user IDENTIFIED BY 'my_password';
GRANT REPLICATION SLAVE ON *.* TO replication_user;

其中my_password是您选择的复制用户的密码。

3. 在主服务器上记录当前复制位置

在主服务器上使用以下语句记录当前复制位置:

SELECT @@GLOBAL.gtid_executed;

记录查询结果的值,它将用于作为从服务器上的同步起点。

4. 配置从服务器

在从服务器上运行以下语句,告诉从服务器连接主服务器:

CHANGE MASTER TO MASTER_HOST='master_host_name',
MASTER_USER='replication_user',
MASTER_PASSWORD='my_password',
MASTER_CONNECT_RETRY=10,
MASTER_AUTO_POSITION=1;

其中,master_host_name是主服务器的IP地址或主机名。确保连接主服务器的端口被打开,以便从服务器可以访问主服务器。

可以使用以下命令来启动从服务器的GTID复制:

START SLAVE;

示例1

以下示例是在主服务器上创建一个新的数据库和表,并向表添加一些数据:

CREATE DATABASE testDB;
USE testDB;
CREATE TABLE myTable (id INT PRIMARY KEY, name VARCHAR(25));
INSERT INTO myTable VALUES (1, 'John'), (2, 'Doe');

现在我们来检查当前复制位置:

SELECT @@GLOBAL.gtid_executed;

得到的结果为:

8587b2f6-c281-11eb-9995-4ccc6a430f90:1-3

现在配置从服务器,并启动GTID复制:

CHANGE MASTER TO MASTER_HOST='master_server_1',
MASTER_USER='replication_user',
MASTER_PASSWORD='my_password',
MASTER_CONNECT_RETRY=10,
MASTER_AUTO_POSITION=1;
START SLAVE;

现在,我们使用以下语句在主服务器上更新表的数据:

USE testDB;
UPDATE myTable SET name='Doe Jr.' WHERE id=2;

检查从服务器是否复制了这个更新:

USE testDB;
SELECT * FROM myTable;

从服务器应该在myTable表中执行了更新。

示例2

以下示例演示了使用GTID复制从一台主服务器复制到第二个主服务器的过程:

在第一个主服务器上创建数据库和表并添加数据:

CREATE DATABASE testDB;
USE testDB;
CREATE TABLE myTable (id INT PRIMARY KEY, name VARCHAR(25));
INSERT INTO myTable VALUES (1, 'John'), (2, 'Doe');

现在在从第一个主服务器复制到第二个主服务器:

CHANGE MASTER TO MASTER_HOST='master_server_1',
 MASTER_USER='replication_user',
 MASTER_PASSWORD='my_password',
 MASTER_PORT=3306,
 MASTER_AUTO_POSITION=1;

START SLAVE;

现在在第一个主服务器上进行一些更新:

USE testDB;
UPDATE myTable SET name='Doe Jr.' WHERE id=2;

我们现在可以使用以下语句检查第二个主服务器是否成功复制:

USE testDB;
SELECT * FROM myTable;

第二个主服务器上的myTable表应该反映出更新。

这就是使用GTID复制进行MySQL复制的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL复制之GTID复制的具体使用 - Python技术站

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

相关文章

  • mysql insert语句操作实例讲解

    Mysql Insert语句操作实例讲解 在Mysql中,Insert语句可以用来向一个表中插入一条或多条数据记录。本文将详细讲解Mysql Insert语句的相关操作。 Insert语句结构 Insert语句的结构如下: INSERT INTO 表名 (列1, 列2, 列3, …) VALUES (值1, 值2, 值3, …); 其中,表名表示目标…

    database 2023年5月21日
    00
  • ASP.NET2.0 SQL Server数据库连接详解

    ASP.NET2.0 SQL Server数据库连接详解 为什么要连接SQL Server 在ASP.NET2.0应用程序中,我们通常需要连接SQL Server数据库,进行数据的存储、传递和读取。因此,了解如何连接SQL Server数据库是非常重要的。 如何连接SQL Server 1. 初始化连接字符串 在连接SQL Server之前,我们需要先初始化…

    database 2023年5月21日
    00
  • 如何使用Python实现数据库中数据的批量拆分合并?

    以下是使用Python实现数据库中数据的批量拆分合并的完整攻略。 数据库中数据的批量拆分合并简介 在数据库中,批量拆合并是将多记录拆分成多个记录或将多个记录合并成一个记录。在Python中,可以使用pymysql连接MySQL,并使用SELECT和INSERT`语句实现批量拆分合并。 步骤1:连接数据库 在Python中,可以使用pymysql连接MySQL…

    python 2023年5月12日
    00
  • MySQL定时执行脚本(计划任务)命令实例

    MySQL定时执行脚本是一项非常有用的功能,如果有一些需要定期执行的数据库调度任务,我们可以使用MySQL的计划任务来完成。下面我来详细讲解MySQL定时执行脚本的完整攻略。 1. 创建一个定时执行脚本的任务 要实现MySQL定时执行脚本,我们需要通过SQL语句创建一个任务,并指定任务的执行时间。下面是一个示例SQL语句,用于创建一个每天凌晨1点执行的MyS…

    database 2023年5月22日
    00
  • 在Mac OS上安装Vagrant和Docker的教程

    在Mac OS上安装Vagrant和Docker的教程 简介 Vagrant和Docker是两个用于构建虚拟化环境的开源工具。它们可以显著提高开发人员的效率和应用程序部署的可移植性。在Mac OS上安装它们是一件非常容易的任务。本文将为你提供一个完整的安装和配置说明,包括Vagrant和Docker的下载、安装和配置。 步骤 步骤一:安装Vagrant 下载…

    database 2023年5月22日
    00
  • SQL查询的底层运行原理深入分析

    SQL查询的底层运行原理深入分析 什么是SQL查询 SQL(Structured Query Language,结构化查询语言)是一种用于操作关系型数据库的编程语言,我们可以使用SQL语言进行数据增删改查等操作。SQL查询就是用SQL语言查询数据的过程。 SQL查询的底层运行原理 SQL查询的底层运行原理主要分为以下几个步骤: 语法分析与解析 当我们输入SQ…

    database 2023年5月19日
    00
  • mysql中,now()函数和sysdate()函数有什么区别?

    问题描述:   今天在看mysql的时间函数,now()和sysdate(),记录下两者之间有什么不同. 实验过程: 1.执行以下的两个语句: mysql> select now(),sleep(2),now(); +———————+———-+———————+ | now() | sl…

    MySQL 2023年4月13日
    00
  • 浅谈mysql的timestamp存在的时区问题

    浅谈MySQL的timestamp存在的时区问题 什么是timestamp timestamp是MySQL中一种日期时间类型。它可以自动存储记录的插入时间和更新时间,通常用于记录数据的时间戳信息。 timestamp的时区问题 在MySQL中,timestamp类型是存储为时间戳的整数,它表示从1970年1月1日以来的秒数。但是,timestamp类型存在时…

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