MySQL 互为主备的实现教程

 更新时间:2026年06月21日 09:20:17   作者:ChristXlx  
本文主要介绍了MySQL 互为主备的实现教程,包括正确编辑my.ini配置文件、确保数据库操作前置条件完成以及避免在关键步骤中修改数据库数据,以确保配置成功

mysql互为主备

A<-->B 数据互通
首先A客户机和B客户机要互通

为了方便使用,本文ip不再以明文方式显示
"C:\Windows\System32\drivers\etc\hosts"  在这里修改ip
192.168.124.88 node1   
192.168.124.44 node2
其中node1和node2为客户机ip
数据库A 为node1,数据库B 为node2

数据库A配置

加到my.ini中 (C:\ProgramData\MySQL\MySQL Server 8.0

server-id=1
log-bin=mysql-bin
binlog_format=ROW
gtid_mode=ON
enforce_gtid_consistency=ON
log_slave_updates=ON
auto_increment_increment=2
auto_increment_offset=1

数据库B配置

加到my.ini中

server-id=2
log-bin=mysql-bin
binlog_format=ROW
gtid_mode=ON
enforce_gtid_consistency=ON
log_slave_updates=ON
auto_increment_increment=2
auto_increment_offset=2

配置保存后重启mysql

数据该同步同步,后面不可以再操作数据!!!!!!!!!

这个过程中,千万不要动msyql数据,不然前功尽弃!!!

数据库A操作

STOP REPLICA;
RESET REPLICA ALL;
RESET MASTER;  --必须执行,且执行后不得再有任何数据库操作

CREATE USER 'repl'@'%' IDENTIFIED BY 'Repl@123456';

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

FLUSH PRIVILEGES;

-- 下面两条是为了改密码配置,8.0以上直接执行就行
ALTER USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'Repl@123456';

FLUSH PRIVILEGES;

数据库B操作

STOP REPLICA;
RESET REPLICA ALL;
RESET MASTER;


如果在数据库A已经创建,数据库B中可以无需操作,会自动同步过来
CREATE USER 'repl'@'%' IDENTIFIED BY 'Repl@123456';

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

FLUSH PRIVILEGES;


ALTER USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'Repl@123456';

FLUSH PRIVILEGES;

前置条件完成

不可操作任何数据库数据了!!!

先把数据库A做主,B做从
在B数据库中执行

CHANGE REPLICATION SOURCE TO
SOURCE_HOST='node1',
SOURCE_PORT=3306,
SOURCE_USER='repl',
SOURCE_PASSWORD='Repl@123456',
SOURCE_AUTO_POSITION=1;

START REPLICA;
-- 到这就结束了

 验证是否互通

	-- 验证是否互通
SHOW REPLICA STATUS;

查询结果看这三个字段

Replica_IO_Running: Yes
Replica_SQL_Running: Yes

Seconds_Behind_Source: 0

此时 A->B完成

最好是通了再做下面的

再把数据库B做主,A做从
在A数据库中执行

CHANGE REPLICATION SOURCE TO
SOURCE_HOST='node2',
SOURCE_PORT=3306,
SOURCE_USER='repl',
SOURCE_PASSWORD='Repl@123456',
SOURCE_AUTO_POSITION=1;

START REPLICA;
-- 到这就结束了

验证是否互通 

	-- 验证是否互通
SHOW REPLICA STATUS;

 查询结果看这三个字段

Replica_IO_Running: Yes
Replica_SQL_Running: Yes

Seconds_Behind_Source: 0

此时 B->A完成

这个过程中,千万不要动msyql数据,不然前功尽弃!!!

到此这篇关于MySQL 互为主备的实现教程的文章就介绍到这了,更多相关MySQL 互为主备内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL锁的知识点总结

    MySQL锁的知识点总结

    在本篇文章里小编给大家整理了关于MySQL锁的知识点总结以及实例内容,需要的朋友们学习下。
    2019-11-11
  • mysql 5.7.11 winx64初始密码修改

    mysql 5.7.11 winx64初始密码修改

    这篇文章主要为大家详细介绍了mysql 5.7.11 winx64初始密码修改的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • MySQL查询条件常见用法详解

    MySQL查询条件常见用法详解

    这篇文章主要介绍了MySQL查询条件常见用法,结合实例形式总结分析了MySQL常见的各类查询条件与简单使用方法,需要的朋友可以参考下
    2019-11-11
  • ERROR 1862 (HY000): Your password has expired. To log in you must change it using a .....

    ERROR 1862 (HY000): Your password has expired. To log in you

    当你在安装 MySQL过程中,通过mysqld --initialize 初始化 mysql 操作后,生成临时密码后,没有直接进行 MySQL连接,中途重启服务或者重启机器等,导致密码失效问题,怎么处理呢,感兴趣的朋友一起看看吧
    2019-11-11
  • Mysql一主多从部署的实现步骤

    Mysql一主多从部署的实现步骤

    本文主要介绍了Mysql一主多从部署的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • MySQL中主键默认有索引吗

    MySQL中主键默认有索引吗

    MySQL主键默认是有索引的,在MySQL中,主键是用来唯一标识表中每一行数据的字段或字段组合,主键的作用是保证数据的唯一性,并且可以提高数据的查询效率,需要的朋友可以参考下
    2023-10-10
  • 微信公众平台开发 数据库操作

    微信公众平台开发 数据库操作

    这篇文章主要介绍了微信公众平台开发 数据库操作的相关资料,需要的朋友可以参考下
    2016-10-10
  • MySQL8.x连接5.x 服务器认证问题解决

    MySQL8.x连接5.x 服务器认证问题解决

    MySQL 8.0与5.x认证插件不兼容,需在客户端指定使用mysql_native_password,下面就来介绍一下如何解决,感兴趣的可以了解一下
    2025-08-08
  • MySQL实现数据批量更新功能详解

    MySQL实现数据批量更新功能详解

    最近需要批量更新大量数据,习惯了写sql,所以还是用sql来实现,下面这篇文章主要给大家总结介绍了关于MySQL批量更新的方式,需要的朋友可以参考下
    2023-02-02
  • MySQL中处理数据的并发一致性的实现示例

    MySQL中处理数据的并发一致性的实现示例

    在MySQL中处理数据的并发一致性是确保多个用户或应用程序同时访问和修改数据库时,不会导致数据冲突、数据丢失或数据不一致,MySQL通过事务和锁机制来管理并发,下面就来详细的了解一下
    2025-08-08

最新评论