千家信息网

MySQL主主复制(图文详解)

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,一、实现原理主主复制即在两台MySQL主机内都可以变更数据,而且另外一台主机也会做出相应的变更。聪明的你也许已经想到该怎么实现了。对,就是将两个主从复制有机合并起来就好了。只不过在配置的时候我们需要注
千家信息网最后更新 2026年11月01日MySQL主主复制(图文详解)

一、实现原理
主主复制即在两台MySQL主机内都可以变更数据,而且另外一台主机也会做出相应的变更。聪明的你也许已经想到该怎么实现了。对,就是将两个主从复制有机合并起来就好了。只不过在配置的时候我们需要注意一些问题,例如,主键重复,server-id不能重复等等。
主主复制----->互为主从
二、实现功能
两台MySQL之间互为彼此的从库,同时又是主库。这种方案,既做到了访问量的压力分流,同时也解决了"单点故障"问题。任何一台故障,都还有另外一套可供使用的服务。

三、架构模式

四、配置文件

 --192.168.18.5 【mysqld】            server-id=1   #任意自然数n,只要保证两台MySQL主机不重复就可以了。           log-bin=mysql-bin   #开启二进制日志                     log_bin_index = mysql-bin.index                     relay_log = mysql-relay-bin                     relay_log_index = mysql-relay-bin.index                     read_only = 1                     skip_slave_start = 1           auto_increment_increment=2   #步进值auto_imcrement。一般有n台主MySQL就填n           auto_increment_offset=1   #起始值。一般填第n台主MySQL。此时为第一台主MySQL           binlog-ignore=mysql   #忽略mysql库           binlog-ignore=information_schema   #忽略information_schema库           slave-skip-errors = all           --192.168.18.6【mysqld】                    server-id = 2                    log_bin = mysql-bin                    log_bin_index = mysql-bin.index                    relay_log = mysql-relay-bin                    relay_log_index = mysql-relay-bin.index                    read_only = 1                    skip_slave_start = 1                    log_slave_updates = 1                    auto-increment-increment = 2                    auto-increment-offset = 2   #此处区别于18.5的配置                    slave-skip-errors = all

配置好后重启MySQL

两台数据库的/etc/my.cnf配置

五、互相授权访问权限

18.5上执行授权root远程18.6MySQL [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.18.6' IDENTIFIED BY '1qaz2wsx';Query OK, 0 rows affected, 1 warning (0.06 sec)MySQL [(none)]> flush privileges;Query OK, 0 rows affected (0.05 sec)18.6上执行授权root远程18.5MySQL [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.18.5' IDENTIFIED BY '1qaz2wsx';Query OK, 0 rows affected, 1 warning (0.04 sec)MySQL [(none)]> flush privileges;Query OK, 0 rows affected (0.03 sec)

在18.5上查看二进制文件名与位置

在18.6上告知18.5的文件名与位置
MySQL [(none)]> CHANGE MASTER TO
-> MASTER_HOST='192.168.18.5',
-> MASTER_USER='root',
-> MASTER_PASSWORD='1qaz2wsx',
-> MASTER_LOG_FILE='mysql-bin.000003',
-> MASTER_LOG_POS=154;

至此完成主从模式。
要完成主主,相反,18.6也要告知18.5的二进制文件名与位置
在18.6上查看

在18.5上执行
MySQL [(none)]> CHANGE MASTER TO
-> MASTER_HOST='192.168.18.6',
-> MASTER_USER='root',
-> MASTER_PASSWORD='1qaz2wsx',
-> MASTER_LOG_FILE='mysql-bin.000005',
-> MASTER_LOG_POS=154;
Query OK, 0 rows affected, 2 warnings (0.31 sec)

然后分别开启start slave;

查看slave状态

至此完成主主复制。
配置主主之前,mysql的库最好是一致的,也就是初始化的模式的,如果库不一致,会导致报错。

参考链接

报错参考链接
配置参考链接

配置 文件 主从 主机 二进制 位置 文件名 模式 链接 参考 一致 同时 故障 数据 至此 问题 聪明 两个 之间 也就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 喔噻互联网科技有限公司 互联网科技行业发展 互联网金融科技创新 郑州华宇互联网科技 互联网科技创新企业排名 中国的互联网科技企业的崛起 杭州壁岐互联网科技有限公司 呼和浩特新华互联网科技学院 华夏恒生科技与互联网科技 国大互联网教育科技有限公司薪资 伍佰万互联网科技怎么赚钱 互联网科技资金流入 互联网科技融合创新 有人说阿里系是互联网科技企业 互联网与数字科技关系 易企秀互联网科技是做什么的 互联网时代科技型公司的机会 互联网公司属于科技吗 科技和互联网行业的特点 科技互联网专业工作会议发言稿 深圳市人人互联网科技有限公司 深圳九邦互联网科技有限公司 科技互联网公司装修 关于新基建和互联网科技 新华互联网科技校企合作 互联网科技生活的内容 广西互联网科技孵化中心 恒生互联网科技业指数调整周期 互联网科技创新方面的资料 银川新华互联网科技学校招聘
0