mysql基于GTID的复制方式

Posted jialinux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

以上是关于mysql基于GTID的复制方式的主要内容,如果未能解决你的问题,请参考以下文章

mysql基于GTID的复制方式

mysql集群-基于GTID的主从复制

Centos7搭建基于GTID的MySQL主从复制架构

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

CentOS 7 部署MySQL 5.7(主从复制,传统方式及GTID)

MySQL 主从复制