首页 > 数据库 >MySQL8.0轻松搞定GTID主从复制

MySQL8.0轻松搞定GTID主从复制

时间:2023-06-12 11:15:03浏览次数:45  
标签:主库 主从复制 数据库 master mysql MySQL8.0 从库 GTID

select table_catalog
      ,table_schema
      ,table_name
      ,engine
from information_schema.tables
where engine='MyISAM';
     

MySQL命令查询所有MyISAM数据库

          为什么需要主从复制?

 


通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低。 
为了提升业务系统性能,优化用户体验,可以通过做主从复制来减轻主数据库的负载。 
而且如果主数据库宕机,可快速将业务系统切换到从数据库上,可避免数据丢失。

 

 

 

主从复制原理

 

  • 主库将更新记录保存于Binlog文件中,并通过Binglog Dump线程发送给从库。

 


 

  • 从库的I/O线程从主库读取Binlog更新的数据,写入到Relay log中。

 


 

  • 从库的SQL线程读取Relay log文件的数据写入从库,实现同步。

 

 

采用GTID (Global Transaction ID) 主从复制方式,保证了每个在主库上提交的事务在集群中有一个唯一的ID。

 

这种方式强化了数据库的主从一致性,故障恢复以及容错能力。

 

相比于早期通过master_log_file,master_log_pos同步的主从复制,省去了从库宕机重启后,需要重新配置的问题。

 

 

接下来介绍在虚拟机centos8版本, 实现GTID主从复制的三大步骤:
一.MySQL8.0安装
1.1、 使用rpm来安装MySQL
wget

1.2、 启动mysql并设置开机自启动
systemctl start mysqld.servicesystemctl enable mysqld.service

1.3、 关闭防火墙并设置开机不启动
systemctl stop firewalld.servicesystemctl disable firewalld.service

1.4、 登录,无需密码,当前最新版本为8.0.26
mysql

1.5、 查看BINLOG状态,最新版本默认已经开启
mysql> show variables like '%log_bin%';

1.6、 复制安装好MySQL8的虚拟机镜像,作为从库 二.主库配置
2.1、 设置server-id,打开GTIT

vim /etc/my.
cnf

# 添加[
mysqld]    server-
id=

1    gtid_mode=

on    enforce-gtid-consistency=

true

# 重启mysql systemctl restart mysqld.service
 2.2、 登录mysql,添加用于同步的数据库账号
mysql> create user 'kunlun'@'%' identified by '123456';mysql> grant replication slave on *.*  to 'kunlun'@'%';mysql> flush privileges;

三.从库配置
3.1、 删除auto.cnf,重启自动生成server-uuid
rm -f /var/lib/mysql/auto.cnf   # 复制的虚拟机镜像,UUID会重复

3.2、 设置server-id, 主库和从库server-id不要重复
vim /etc/my.cnf# 添加[mysqld]    server-id=2    gtid_mode=on    enforce-gtid-consistency=true# 重启mysqlsystemctl restart mysqld.service

3.3、 登录mysql,配置主从同步
mysql> change master to master_host='192.168.25.139',    #主库IPmaster_port=3306,          #默认端口master_user='kunlun',        #第二步创建的账户master_password='123456',      #密码master_auto_position = 1;

3.4、 启动从库服务
mysql> start slave;
 
3.5、 查看状态
mysql> show slave status\G*************************** 1. row ***************************               Slave_IO_State: Waiting for source to send event             Slave_IO_Running: Yes            Slave_SQL_Running: Yes

3.6、 测试

 

在主库创建数据库:

 

mysql> create database mydb;

 

 

 

在从库查看:

 

mysql> show databases;

 

至此,GTID方式的主从复制已经搭建成功。

 


注意

 

 

要实现MySQL的Replication,首先必须打开master端的binlog(mysql-bin.xxxxxx)日志功能,否则无法实现mysql的主从复制。

 

因为 MySQL的整个主从复制过程实际上就是:slave端从master端获取binlog日志,然后再在自己身上完全顺序的执行该日志中所记录的各种SQL操作。

 

END

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/70011764/viewspace-2853169/,如需转载,请注明出处,否则将追究法律责任。

标签:主库,主从复制,数据库,master,mysql,MySQL8.0,从库,GTID
From: https://www.cnblogs.com/cheyunhua/p/17474445.html

相关文章

  • MySql5.7主从同步配置(gtid模式)
    mysql数据库主从同步配置是开发中比较常见的需求,在MySql里,主从同步主要有两种,bin-log和gtid。下面就主要总结一下使用gtid模式配置主从同步的过程。1.概念全局事务标识:globaltransactionidentifiers;GTID是一个事务一一对应,并且全局唯一ID;一个GTID在一个服务器上只执行一次,避免......
  • mysql GTID模式跳过错误GTID事务的正确方法
      最近遇到一个Mysql由于createtable时由于从库表表空间问题,从库sql重放进程执行sql失败,导致从库的sql应用进程挂掉。客户反馈,可以跳过失败的createtable事务,本博文展示mysql基于GITD模式跳过错误CTID事务的正确方法。  1.0明确错误原因root@mysqldb15:53:[(none)]>......
  • mysql 主从复制 原理
     mysql主从复制定义mysql主从复制是一种数据同步的技术,它可以让一个或多个从数据库(slave)复制主数据库(master)的数据变化。这样可以提高数据库的可用性、性能和扩展性,也可以实现读写分离和数据备份。mysql主从复制原理mysql主从复制的原理是基于二进制日志(binlog)的,主数据库......
  • Navicat、SQLyog第一次连接mysql8.0 1251错误
    引入:第一次连接mysql数据库时,报错1251代码错误,这是因为mysql8.0版本的加密规则是mysql_native_password,而在mysql8.0版本之后,加密规则是caching_sha2_password.解决首先,打开cmd命令行,按照一下步骤修改加密规则。连接上MYSQL数据库​ mysql-uroot-p.修改加密规则......
  • binlog_parse_clickhouse.py(ETL抽数据工具)将MySQL8.0迁移至ClickHouse
    binlog_parse_clickhouse.py(ETL抽数据工具)将MySQL8.0迁移至ClickHouse原理:将解析binlog和执行SQL语句两个过程由两个线程来执行。其中,解析binlog的线程每次解析完一个事件后通过队列将SQL语句传给SQL执行线程,SQL执行线程从队列中取出SQL语句并按顺序依次执行,这样就保......
  • mysql8.0二进制安装遇到的问题
    公司新项目需要用CentOS8.0以上的系统和mysql8.0;于是在虚拟机上开始操作测试;一实验环境1、系统版本:CentOS8.32、数据库版本:mysql-8.0.233、数据库下载链接:https://dev.mysql.com/downloads/mysql/二、遇到的问题这里不讲安装过程,之前博客有写只不过用的是mysql5.7,安装过......
  • 十、Redis主从复制
    读操作:主库、从库都可以接收;写操作:首先到主库执行,然后,主库将写操作同步给从库。主从第一次同步第一阶段,主从库间建立连接、协商同步的过程,主要是为全量复制做准备。从库和主库建立起连接,主库确认回复后,就可以开始同步了。具体来说,从库给主库发送psync命令,psync命令包含了......
  • mysql8.0设置时区
    在MySQL8.0中,可以使用以下命令查看当前数据库系统的时区设置:SELECT@@global.time_zone;该命令将返回一个字符串,表示当前数据库系统的时区设置。例如,返回如下结果:+--------------------+|@@global.time_zone|+--------------------+|SYSTEM|+------......
  • Redis_主从复制
    一、主从复制介绍主机数据更新后根据配置和策略,自动同步到备机的master/slave机制,Master以写为主,slave以读为主好处:读写分离,性能扩展;容灾快速恢复(一主多从):一台slave从机挂掉,马上切换到另一台slave从机提供服务。主机挂:集群集群:一主多从——关联——一主多从二、主从复制配......
  • Redis主从复制
    主从复制简介主从复制即将master中的数据即时、有效的复制到slave中。。特征:一个master可以拥有多个slave,一个slave只对应一个master职责:master写数据执行写操作时,将出现变化的数据自动同步到slave读数据(可忽略)slave读数据写数据(禁止)......