1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > MySQL5.7 - 基于GTID复制模式搭建主从复制

MySQL5.7 - 基于GTID复制模式搭建主从复制

时间:2022-02-17 04:53:59

相关推荐

MySQL5.7 - 基于GTID复制模式搭建主从复制

环境:

MySQL5.7.24版本

CentOS release 6.5

注意:

MySQL5.7版本Slave可以不开启binlog了,可以节省这部分的磁盘I/O消耗,而MySQL5.6版本必须开启binlog,因为GTID信息需要在binlog中存储(log_slave_updates),只有开启binlog才能使用GTID的功能。MySQL5.7版本通过GTID系统表来记录GITD信息(mysql.gtid_executed),每个事务提交时,将GTID信息插入到表中

Master配置:

[root@master ~]# cat /etc/f

server_id=1

gtid_mode=on

enforce_gtid_consistency=on

log_bin=/var/lib/mysql/binlog

binlog_format=row

character_set_server=utf8

[root@master ~]# service mysqld restart

Slave配置:

[root@slave ~]# cat /etc/f

server_id=2

gtid_mode=on

enforce_gtid_consistency=on

binlog_format=row

relay_log=/var/lib/mysql/relaylog

replicate_do_db=edusoho_e

character_set_server=utf8

[root@slave ~]# service mysqld restart

Master:

查看当前binlog情况:

mysql> show master status;

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

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

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

| mysql-bin.000001 | 154 | | | |

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

1 row in set (0.00 sec)

授权复制连接用户:

mysql> grant replication slave on *.*to repliter@'192.168.32.2' identified by PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';

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

mysql> show warnings;

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

| Level | Code | Message |

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

| Warning | 1287 | 'IDENTIFIED BY PASSWORD' is deprecated and will be removed in a future release. Please use IDENTIFIED WITH <plugin> AS <hash> instead |

| Warning | 1287 | Using GRANT for creating new user is deprecated and will be removed in future release. Create new user with CREATE USER statement. |

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

2 rows in set (0.00 sec)

创建statistic库:

mysql> create database statistic;

Query OK, 1 row affected (0.01 sec)

创建statistic.t1表:

CREATE TABLE `statistic`.`t1` (

`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,

`xname` VARCHAR(20) NOT NULL DEFAULT '',

`address` CHAR(20) NOT NULL DEFAULT '',

`sex` TINYINT(1) NOT NULL DEFAULT '1',

`hobby` VARCHAR(30) NOT NULL DEFAULT '',

`age` TINYINT(2) DEFAULT '18',

PRIMARY KEY (`id`),

KEY `idx_name` (`xname`)

) ENGINE=INNODB DEFAULT CHARSET=utf8;

创建edusoho_e库:

mysql> create database edusoho_e;

Query OK, 1 row affected (0.01 sec)

创建edusoho_e.t1表:

CREATE TABLE `edusoho_e`.`t1` (

`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,

`xname` VARCHAR(20) NOT NULL DEFAULT '',

`address` CHAR(20) NOT NULL DEFAULT '',

`sex` TINYINT(1) NOT NULL DEFAULT '1',

`hobby` VARCHAR(30) NOT NULL DEFAULT '',

`age` TINYINT(2) DEFAULT '18',

PRIMARY KEY (`id`),

KEY `idx_name` (`xname`)

) ENGINE=INNODB DEFAULT CHARSET=utf8;

INSERT INTO `statistic`.`t1` (`xname`, `address`, `hobby`) VALUES ('statistic', '北京', '游戏');

INSERT INTO `edusoho_e`.`t1` (`xname`, `address`, `hobby`) VALUES ('edusoho_e', '上海', '开发');

查看当前binlog情况:

mysql> show master status;

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

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

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

| mysql-bin.000001 | 2443 | | | c13c1b45-2741-11e9-abb0-000c29b85ea6:1-7 |

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

1 row in set (0.00 sec)

准备复制数据:

[root@master ~]# mysqldump -uroot -p -B edusoho_e > `date +%F`.sql (警告什么信息,自行查阅帮助的)

Enter password:

Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --even

Slave导入复制数据:

[root@slave ~]# mysql -uroot -p < -05-29.sql

Enter password:

Slave开始数据复制:

mysql> change master to master_auto_position=1,master_host='192.168.32.3',master_port=3306;

Query OK, 0 rows affected (0.04 sec)

mysql> start slave user='repliter' password='123456'; (会滚动 relay log 日志文件)

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

mysql> show slave status\G;

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

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Retrieved_Gtid_Set:

Executed_Gtid_Set: c13c1b45-2741-11e9-abb0-000c29b85ea6:1-7

Auto_Position: 1

至此,MySQL5.7 基于GTID模式的主从复制搭建完毕。如果,你是MySQL5.6的环境,那么请参考 MySQL5.6 基于GTID模式的主从复制搭建,当然了,还有一些常见复制问题的介绍,需要对你有所帮助。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。