千家信息网

MySQL5.6怎么实现主主同步

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"MySQL5.6怎么实现主主同步",在日常操作中,相信很多人在MySQL5.6怎么实现主主同步问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"MySQL
千家信息网最后更新 2026年11月03日MySQL5.6怎么实现主主同步

这篇文章主要介绍"MySQL5.6怎么实现主主同步",在日常操作中,相信很多人在MySQL5.6怎么实现主主同步问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"MySQL5.6怎么实现主主同步"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

实战环境介绍:

服务器名IP系统MySQL
odd.example.com192.168.1.115rhel-5.85.6.24
even.example.com192.168.1.116rhel-5.85.6.24


假设要同步的库是db_rocky

㈠ 创建同步用户

在ODD上

mysql> grant replication slave on *.* to 'water'@'192.168.1.116' identified by 'cdio2010';
Query OK, 0 rows affected (0.00 sec)


mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)


在EVEN上

mysql> grant replication slave on *.* to 'water'@'192.168.1.115' identified by 'cdio2010';
Query OK, 0 rows affected (0.11 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

㈡ 修改/etc/my.cnf配置文件,为其添加以下内容:

在ODD上

[mysqld]
server-id=1

binlog-do-db=db_rocky #需要记录进制日志的数据库.
binlog-ignore-db=mysql #不需要记录进制日志的数据库.
replicate-do-db=db_rocky #需要进行同步的数据库.
replicate-ignore-db=mysql,information_schema #不需要同步的数据库.
注意:如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db、binlog-do-db、replicate-do-db、replicate-ignore-db选项
#同步参数:
#保证slave挂在任何一台master上都会接收到另一个master的写入信息
log-slave-updates
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
slave-skip-errors=all #过滤掉一些没啥大问题的错误


在EVEN上

[mysqld]
server-id=2 #设置一个不同的id号
注意:在my.cnf里面有个默认值1,把默认值改为其它的数字,而非新增一个server-id
binlog-do-db=db_rocky #需要记录二进制日志的数据库.
binlog-ignore-db=mysql #不需要记录进制日志的数据库.
#需要同步的数据库
replicate-do-db=db_rocky #需要进行同步的数据库.
replicate-ignore-db=mysql,information_schema #不需要同步的数据库.
#如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db、binlog-do-db、replicate-do-db、replicate-ignore-db选项
#同步参数:
#保证slave挂在任何一台master上都会接收到另一个master的写入信息
log-slave-updates
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=2
slave-skip-errors=all #过滤掉一些没啥大问题的错误


㈢ 分别重启服务器ODD、EVEN上的mysql服务
# server mysqld restart

㈣ 分别在服务器ODD、EVEN上查看做为主服务器状态

在ODD

mysql> flush tables with read lock; #防止进入新的数据
Query OK, 0 rows affected (0.00 sec)

mysql> show master status\G;
*************************** 1. row ***************************
File: mysql-bin.000007
Position: 438
Binlog_Do_DB: db_rocky
Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)

在EVEN

mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)

mysql> show master status\G;
*************************** 1. row ***************************
File: mysql-bin.000008
Position: 107
Binlog_Do_DB: db_rocky
Binlog_Ignore_DB: mysql
1 row in set (0.01 sec)

㈤ 分别在服务器ODD、EVEN上用change master语句指定同步位置 :

在ODD

mysql> change master to master_host='192.168.1.116',master_user='water',master_password='cdio2010',
-> master_log_file='mysql-bin.000008',master_log_pos=107;
Query OK, 0 rows affected (0.05 sec)

在EVEN

mysql> change master to master_host='192.168.1.115',master_user='water',master_password='cdio2010',
-> master_log_file='mysql-bin.000007',master_log_pos=438;
Query OK, 0 rows affected (0.15 sec)

注:master_log_file,master_log_pos由上面主服务器查出的状态值中确定

master_log_file对应File,master_log_pos对应Position

在ODD、EVEN上执行

mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)

㈥ 分别在服务器ODD、EVEN上启动从服务器线程

mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

分别在服务器ODD、EVEN上查看从服务器状态 :

ODD上

mysql> show slave status\G;
*************************** 1. row ***************************
主要关注以下 2 个参数:
...
...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...
...


EVEN上:

mysql> show slave status\G;
*************************** 1. row ***************************
主要关注以下 2 个参数:
...
...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...
...


㈦ 测试

EVEN上

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| db_rocky |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)

mysql> use db_rocky;
Database changed

mysql> show tables;
Empty set (0.00 sec)

mysql> create table water (id int);
Query OK, 0 rows affected (0.04 sec)

mysql> insert into water values(1);
Query OK, 1 row affected (0.01 sec)

mysql> commit;
Query OK, 0 rows affected (0.00 sec)


在ODD上

mysql> show tables;
+--------------------+
| Tables_in_db_rocky |
+--------------------+
| t_rocky |
| water |
+--------------------+
2 rows in set (0.00 sec)

mysql> select * from water;
+------+
| id |
+------+
| 1 |
+------+
1 row in set (0.00 sec)

到此,关于"MySQL5.6怎么实现主主同步"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

同步 数据 数据库 服务 服务器 参数 多个 日志 学习 状态 进制 问题 信息 更多 逗号 错误 保证 帮助 不同 实用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技股 美国互联网科技 互联网科技公司官网 科技创新互联网企业 科技互联网创业计划书 四川狮子座互联网科技 新华互联网科技校企合作 互联网科技博主是什么意思 科技互联网的估值 互联网时代科技改变生活 互联网科技与管理 内蒙古九一互联网科技 山东子淼互联网科技有限公司 半导体行业属于互联网高科技类吗 吉林省码上互联网科技电话 银川新华互联网科技学校原画 北京军民互联网科技公司 科技互联网专业工作会议发言稿 互联网科技创新方面的资料 互联网科技企业文化 河南真二互联网科技有限公司 金融科技与互联网金融 浩特互联网科技 互联网和高科技公司 花神(南京)互联网科技有限公司 广东工业互联网大赛深圳学泰科技 互联网营销推广黑科技 互联网科技对化妆品行业 互联网大会出现的黑科技 互联网科技创业有什么好项目
0