mysql基于GTID的复制方式

Mysql的复制方法一共有四种:基于sql语句、基于行、混合部署、基于GTIDS

GTIDS的使用环境一般在一主多从下使用

GTIDS的环境:


角色


IP


Master


192.168.200.101


Slave


192.168.200.102

实验步骤:

如果不是新安装的mysql,那么我们需要将主节点上的数据导入从节点,达到数据同步。

  1. 修改MySQL的配置文件

[[email protected] ~]# vim /etc/my.cnf

[mysqld]

gtid_mode=on

enforce_gtid_consistency=on

server_id=1

datadir=/usr/local/mysql/data

socket=/tmp/mysql.sock

#binlog

log-bin=mysql-binlog

log-slave-updates=1

binlog_format=row

 

#relay log

skip_slave_start=1

  1. 登录mysql进行配置

[[email protected] ~]# mysql -u root -p

mysql> grant replication slave on *.* to ‘myslave‘@‘192.168.200.%‘ identified by ‘123123‘;

Query OK, 0 rows affected, 1 warning (0.01 sec)

 

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

3. 修改从节点mysql配置文件

[[email protected] ~]# vim /etc/my.cnf

[mysqld]

datadir=/usr/local/mysql/data

socket=/tmp/mysql.sock

server-id = 2

log_bin=on

gtid-mode=on

enforce-gtid-consistency=on

read_only=on

#保证从节点的安全性

master_info_repository=TABLE

relay_log_info_repository=TABLE

 

登录从节点mysql进行配置

[[email protected] ~]# mysql -uroot -p

mysql> stop slave;

Query OK, 0 rows affected (0.01 sec)

 

mysql> change master to master_host=‘192.168.200.101‘,

    -> master_user=‘myslave‘,

    -> master_password=‘123123‘,

    -> master_auto_position=1;

Query OK, 0 rows affected, 2 warnings (0.04 sec)

 

mysql> start slave;

Query OK, 0 rows affected (0.01 sec)

                                                                                                                                                                        mysql>show slave status\G‘;

*************************** 1. row ***************************

               Slave_IO_State: Waiting for master to send event

                  Master_Host: 192.168.200.101

                  Master_User: myslave

                  Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: mysql-binlog.000001

          Read_Master_Log_Pos: 604

               Relay_Log_File: slave-relay-bin.000002

                Relay_Log_Pos: 823

        Relay_Master_Log_File: mysql-binlog.000001

             Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

              Replicate_Do_DB:

          Replicate_Ignore_DB:

           Replicate_Do_Table:

       Replicate_Ignore_Table:

      Replicate_Wild_Do_Table:

  Replicate_Wild_Ignore_Table:

                   Last_Errno: 0

                   Last_Error:

                 Skip_Counter: 0

          Exec_Master_Log_Pos: 604

              Relay_Log_Space: 1030

              Until_Condition: None

               Until_Log_File:

                Until_Log_Pos: 0

           Master_SSL_Allowed: No

           Master_SSL_CA_File:

           Master_SSL_CA_Path:

              Master_SSL_Cert:

            Master_SSL_Cipher:

               Master_SSL_Key:

        Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

                Last_IO_Errno: 0

                Last_IO_Error:

               Last_SQL_Errno: 0

               Last_SQL_Error:

  Replicate_Ignore_Server_Ids:

             Master_Server_Id: 1

                  Master_UUID: 66e3b98a-5782-11e9-86c5-000c29d506eb

             Master_Info_File: mysql.slave_master_info

                    SQL_Delay: 0

          SQL_Remaining_Delay: NULL

      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates

           Master_Retry_Count: 86400

                  Master_Bind:

      Last_IO_Error_Timestamp:

     Last_SQL_Error_Timestamp:

               Master_SSL_Crl:

           Master_SSL_Crlpath:

           Retrieved_Gtid_Set: 66e3b98a-5782-11e9-86c5-000c29d506eb:1-2

            Executed_Gtid_Set: 66e3b98a-5782-11e9-86c5-000c29d506eb:1-2

                Auto_Position: 1

         Replicate_Rewrite_DB:

                 Channel_Name:

           Master_TLS_Version:

row in set (0.00 sec)

  1. 测试

在主节点上创建数据

mysql> create database test;

Query OK, 1 row affected (0.01 sec)

然后在从节点上查看

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

| test               |

+--------------------+

5 rows in set (0.01 sec)

原文地址:https://www.cnblogs.com/JIAlinux/p/10893534.html

时间: 2024-10-31 10:40:58

mysql基于GTID的复制方式的相关文章

MYSQL 基于GTID的复制

1.概述 从MYSQL5.6 开始,mysql开始支持GTID复制. 基于日志点复制的缺点: 从那个二进制日志的偏移量进行增量同步,如果指定错误会造成遗漏或者重复,导致数据不一致. 基于GTID复制: 1.从服务器会告诉主服务器已执行的事务的GTID值. 2.主库会告诉从哪些GTID事务没有被执行. 同一个事务在指定的从库执行一次. 什么是GTID GTID即全局事务ID,器保证为每一个在主上提交的事务在复制集群中可以生成一个唯一的ID. GTID=source_id:transaction_i

MySQL学习笔记07基于GTID的复制

1.1.1. 相关概念 (1)GTID GTID是Global Transaction Identifier的缩写.GTID是一个跟提交的事务有关的标识符,由提交事务所在的原始MySQL的UUID和事务的编号组成:因此,每个GTID在每个参与的MySQL中都是唯一的,而且由GTID可以取得该事务所在的原始MySQL以及事务在原始MySQL上的编号. GTID格式如下: GTID = MySQL原始UUD:事务编号 GTID的例子如下: GTID=a2392929-6dfb-11e7-b294-0

MySQL5.6基于GTID同步复制,与如何实现MySQL负载均衡、读写分离。

MySQL想必大家都不陌生,之前文章也有介绍同步复制与半同步复制,今天先来了解下什么是GTID. GTID(global transaction ID)全局事务ID,是由服务器的UUID+一段随机数事务ID. 特性:从服务器从主服务器复制过来的事务,GTID不变,也就是说一个事务在全局复制架构中的ID不变. 有什么用: 在MySQL集群中,当Master故障时,需要从Slave中挑选一个提升为Master可以基于GTID对比其他Slave来保证数据的一致性. MySQL主从同步如何配置数据过滤

MySQL 设置基于GTID的复制

GTID的概念 GTID(全名 global transaction identifier)是事务的唯一标识符.格式如下:GTID = source_id:transaction_idsource_id:标识了源服务器,通常是服务器的server_uuidtransaction_id:按照服务器上提交的事务顺序进行排序的序列号.例如: 60f9111a-cdba-11e7-b354-005056a30507:1 在配置文件中添加以下信息来启用GTID模式 [mysqld]gtid_mode=ON

配置MYSQL基于GTID 主从复制详细解析及步骤

GTID的概念 全局事务标识:global transaction identifiers GTID是一个事务一一对应,并且全局唯一ID GTID在一个服务器上只执行一次,避免重复执行导致数据混乱或主从不一致 GTID用来代替传统复制方法,不再使用MASTER_LOG_FILE+MASTER_LOG_POS开启复制.而是使用MASTER_AUTO_POSTION=1的方式开始复制. MySQL-5.6.5开始支持的,MySQL-5.6.10后开始完善. 在传统的slave端,binlog是不用开

Mysql基于GTID搭建主从同步

一.GTID的概念 1.全局事务标识:global transaction identifiers.2.GTID是一个事务一一对应,并且全局唯一ID.3.一个GTID在一个服务器上只执行一次,避免重复执行导致数据混乱或者主从不一致.4.GTID用来代替传统复制方法,不再使用MASTER_LOG_FILE+MASTER_LOG_POS开启复制.而是使用MASTER_AUTO_POSTION=1的方式开始复制.5.MySQL-5.6.5开始支持的,MySQL-5.6.10后开始完善.6.在传统的sl

Mysql 基于GTID的主从复制及切换

参考 http://imysql.com/tag/gtid http://mysqllover.com/?p=594 Mysql 基于GTID的主从复制及切换 一.主从复制配置 两个mysql服务的my.cnf 中相关内容配置 [mysqld] #从复制数据库表设置 replicate-wild-ignore-table = mysql.%,information_schema.%,innodb.%,innodb_log.%,performance_schema.%,test.%,tmp.% #

企业——MYSQL(基于GTID)的主从复制

一.什么是主从复制? 主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库:主数据库一般是准实时的业务数据库. 二.主从复制的作用(好处,或者说为什么要做主从) 1.做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失. 2.架构的扩展.业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能. 3.读写分离,使数据库能支撑更大的并发.在报表中尤其重要.由于部分报表sql语句非常的

MySQL 基于 GTID 的主从复制和多实例配置

配置基于 GTID 的主从复制 1.修改 master 和 slave 的配置文件 server-id=113 gtid_mode=on enforce-gtid-consistency=on replicate-do-db=gateway_target # 如果只需同步部分表,就在 slave 上配置这两个额外项 replicate-do-table=gateway_target.t_target_snapshot 2.导出 master 的库和表结构到 slave,先停止 master my