MySQL GTID主从切换步骤详解

资源类型:00-9.net 2025-07-21 12:50

mysql开启gtid主从切换步骤简介:



MySQL开启GTID主从切换步骤详解 在数据库管理领域,MySQL的主从切换是一个至关重要的操作,特别是在需要高可用性和数据冗余的环境中

    GTID(Global Transaction Identifier,全局事务标识符)为MySQL的主从复制带来了更高的可靠性和灵活性

    本文将详细介绍如何在MySQL中开启GTID模式,并执行主从切换的步骤

     一、准备工作 在开始之前,确保你已经有两台或更多服务器,其中一台将作为主服务器(Master),其余将作为从服务器(Slave)

    同时,确保所有服务器上的MySQL版本一致,并且网络互通,可以互相访问

    GTID模式要求主从服务器的MySQL版本至少为5.6.5

     1.环境准备: - 两台或多台服务器,分别安装MySQL数据库

     - 确保主从服务器之间的网络畅通无阻

     - 建议主从MySQL版本一致,或从库版本高于或等于主库版本

     2.数据一致性建议: - 如果主库已有数据,需在切换前同步到从库,可使用mysqldump或物理备份

     二、配置GTID模式 GTID模式需要在主从服务器的MySQL配置文件中进行启用

    以下是详细的配置步骤: 1.主服务器配置: - 编辑主服务器的配置文件`my.cnf`(路径可能因系统而异): bash vim /etc/my.cnf - 在`【mysqld】`部分添加以下配置: ini 【mysqld】 gtid_mode=ON log-bin=mysql-bin server-id=1 确保唯一性,主库通常设置为1 binlog_format=ROW 推荐使用ROW模式 -重启MySQL服务以使配置生效: bash systemctl restart mysqld 2.从服务器配置: - 同样地,编辑从服务器的配置文件`my.cnf`: bash vim /etc/my.cnf - 在`【mysqld】`部分添加以下配置: ini 【mysqld】 gtid_mode=ON server-id=2 确保唯一性,不能与主库相同 binlog_format=ROW 从库也建议启用ROW模式,尽管它不是必需的 relay-log=mysql-relay-bin启用中继日志 read_only=ON 从库只读(可选,但建议启用以确保数据安全) -重启MySQL服务: bash systemctl restart mysqld 三、创建复制用户并获取GTID信息 在主服务器上,需要创建一个用于复制的用户,并获取当前的GTID信息

     1.创建复制用户: sql CREATE USER replication@从服务器IP IDENTIFIED BY 密码; GRANT REPLICATION SLAVE ON- . TO replication@从服务器IP; FLUSH PRIVILEGES; 将`从服务器IP`替换为从服务器的IP地址,并设置一个密码用于复制

     2.获取GTID信息: 在主服务器上执行以下SQL语句来获取当前的GTID信息: sql SELECT @@GLOBAL.GTID_EXECUTED; 这将返回一个类似于`d0eeb8b7-9e61-11eb-9d96-0242ac110002:1-19`的结果,记录这个信息,因为从服务器配置复制时需要用到它

     四、配置从服务器连接主服务器 在从服务器上,需要配置复制参数以连接到主服务器

     1.设置主服务器连接信息: sql CHANGE MASTER TO MASTER_HOST=主服务器IP, MASTER_USER=replication, MASTER_PASSWORD=密码, MASTER_AUTO_POSITION=1; 将`主服务器IP`替换为主服务器的IP地址,`密码`替换为之前设置的复制用户的密码

    `MASTER_AUTO_POSITION=1`表示使用GTID自动定位复制位置

     2.启动复制: sql START SLAVE; 3.检查复制状态: 在从服务器上执行以下SQL语句来检查复制状态: sql SHOW SLAVE STATUSG 查看输出结果中的`Slave_IO_Running`和`Slave_SQL_Running`字段,确保它们的值都是`Yes`,表示复制正在正常运行

    同时,`Retrieved_Gtid_Set`和`Executed_Gtid_Set`字段应该显示正在复制的GTID集合

     五、验证主从复制 在主服务器上进行一些数据操作,例如插入、更新或删除数据,然后在从服务器上执行相应的查询来验证复制是否成功

     sql -- 在主服务器上创建数据库和表 CREATE DATABASE test_repl; USE test_repl; CREATE TABLE demo(id INT); INSERT INTO demo VALUES(1); -- 在从服务器上查询数据 USE test_repl; SELECTFROM demo; 如果能够从从服务器上查询到与主服务器一致的数据,说明主从复制已成功配置

     六、主从切换步骤 在主从复制正常运行的情况下,如果需要执行主从切换(例如,由于主服务器故障需要将一个从服务器提升为主服务器),可以按照以下步骤进行: 1.切断应用对主库的流量: 确保所有对主数据库的写操作都已停止,并将应用流量切换到只读模式或备用数据库

     2.主库设置只读: 在主服务器上执行以下SQL语句将数据库设置为只读模式: sql SET GLOBAL read_only=ON; SET GLOBAL super_read_only=ON; 3.查看从库复制进程状态: 在从服务器上执行`SHOW SLAVE STATUSG`命令,确保复制进程正常运行且没有错误

     4.比对主备两边的GTID是否一致: 通过比较主服务器和从服务器的`Executed_Gtid_Set`值来确认它们是否一致

     5.从库停掉复制进程并清空主从信息: 在从服务器上执行以下SQL语句停止复制进程并清空主从信息: sql STOP SLAVE; RESET SLAVE ALL; 6.从库关闭只读开启读写,转为新主库: 在从服务器上执行以下SQL语句将数据库设置为读写模式,并将其提升为新主库: sql SET GLOBAL read_only=OFF; SET GLOBAL super_read_only=OFF; 7.主库设置执行新主库的复制链路,转为新备库: 在原来的主服务器上(现在已成为从服务器),配置复制参数以连接到新的主服务器,并将其设置为从服务器: sql CHANGE MASTER TO MASTER_HOST=新主服务器IP, MASTER_USER=replication, MASTER_PASSWORD=密码, MASTER_AUTO_POSITION=1; START SLAVE; 8.应用流量切向新主库: 将应用流量切换到新的主服务器

     通过以上步骤,你可以成功地在MySQL中开启GTID模式并执行主从切换

    GTID模式为M

阅读全文
上一篇:破解误区:MySQL表格支持中文,告别‘不能打中文版’困扰

最新收录:

  • MySQL5.6.38版本性能评测如何?
  • 破解误区:MySQL表格支持中文,告别‘不能打中文版’困扰
  • 虚拟机MySQL端口映射全攻略
  • MySQL中,聚点字符的含义与作用解析
  • MySQL主键数据类型详解
  • MySQL教程:轻松修改表名技巧
  • MySQL事务回滚:高效调优策略
  • Windows系统下MySQL手动安装指南
  • MySQL绿色版安装全攻略:轻松上手教程
  • MySQL技巧:如何限制表的DML操作以保护数据安全
  • MySQL5.6.36 Linux系统安装指南
  • MySQL异常弹出CMD界面,原因何在?
  • 首页 | mysql开启gtid主从切换步骤:MySQL GTID主从切换步骤详解