Mysql数据库双机热备难点分析

所属分类: 数据库 / Mysql 阅读数: 1587
收藏 0 赞 0 分享

小编在以前给大家介绍过关于Mysql 数据库双机热备的配置方法有兴趣的朋友参考一下,本节我们重点对其中的重要环节和需要注意的地方做了总结和分析。

一:介绍

mysql版本:5.7.20

第一个主服服务器ip:192.168.71.139

第二个主服服务器ip:192.168.71.141

二:配置

第一台主服务器192.168.71.139

1:修改/etc/mysql/my.cnf 文件,注意这里的#是注释,不要写到配置文件中

server-id = 141                                                    #服务器id,不能重复,建议用ip后三位。
log-bin = mysql-bin
binlog-ignore-db = mysql,information_schema    #忽略写入binlog日志的库
auto-increment-increment = 2                             #字段变化增量值
auto-increment-offset = 1                                    #初始字段ID为1
slave-skip-errors = all                                          #忽略所有复制产生的错误

2:登陆mysql,创建允许其它服务器复制的账号

GRANT REPLICATION SLAVE ON *.* to 'mysql账号'@'%' identified by '密码';

3:使用show master status查询状态

 

第二台主服务器192.168.71.139

1:修改/etc/mysql/my.cnf 文件,此处的server-id = 139,其它不变。

使用show master status查询状态

此时,需要重新启动两台服务器的mysql  

在192.168.71.141执行同步语句

master_log_file 值来源于139服务器,执行show master status后的 File字段

master_log_file 值来源于139服务器,执行show master status后的 Position字段
change master to master_host='192.168.71.139',master_user='master2',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=154;

在192.168.71.139执行同步语句

master_log_file 值来源于141服务器,执行show master status后的 File字段

master_log_file 值来源于141服务器,执行show master status后的 Position字段

change master to master_host='192.168.71.141',master_user='master1',master_password='123456',master_log_file='mysql-bin.000002', master_log_pos=154;

 

到此为此配置结束,重启mysql,登陆mysql,使用show slave status\G检查配置状态,发现Slave_IO无法启动,出现如下错误

The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.

通过日志发现,master和slave的uuids重复了,因为这两台服务器是克隆的,所以需要修改/var/lib/mysql/auto.cnf

这里修改我只修改最后一个字母,因为修改多了,我mysql都无法启动。修改完成,重新启动mysql,再登陆mysql并执行show slave status\G,如下图

 三:测试

在任意一台服务器执行如下sql

create table tab141(id int primary key);

create table tab139(id int primary key);

在139服务器执行如下sql

insert into tab139 values(1);

在141服务器执行如下sql

insert into tab141 values(2);

结果如下图:

如果大家还有任何不明白的地方欢迎在下方的留言区域讨论。

更多精彩内容其他人还在看

Mac 将mysql路径加入环境变量的方法

这篇文章主要介绍了Mac如何将mysql路径加入环境变量,有需要的朋友好按照下面的步骤操作即可
收藏 0 赞 0 分享

mysql 增加修改字段类型及删除字段类型

本节主要介绍了mysql如何增加修改字段类型及删除字段类型,需要的朋友可以参考下
收藏 0 赞 0 分享

Mysql主从复制(master-slave)实际操作案例

这篇文章主要介绍了Mysql主从复制(master-slave)实际操作案例,同时介绍了Mysql grant 用户授权的相关内容,需要的朋友可以参考下
收藏 0 赞 0 分享

MySQL异常处理浅析

这篇文章主要介绍了MySQL的异常处理,需要的朋友可以参考下
收藏 0 赞 0 分享

MySQL存储毫秒数据的方法

MySQL中没有可以直接存储毫秒数据的数据类型,但是不过MySQL却能识别时间中的毫秒部分。这篇文章主要介绍了MySQL存储毫秒数据的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

MySql中使用INSERT INTO语句更新多条数据的例子

这篇文章主要介绍了MySql中使用INSERT INTO语句更新多条数据的例子,MySQL的特有语法,需要的朋友可以参考下
收藏 0 赞 0 分享

Windows下MySql错误代码1045的解决方法

这篇文章主要介绍了Windows下MySql错误代码1045的解决方法,文中还包含了2个Linux下的解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

mysql查询今天、昨天、近7天、近30天、本月、上一月的SQL语句

这篇文章主要介绍了mysql查询今天、昨天、近7天、近30天、本月、上一月的SQL语句,一般在一些统计报表中比较常用这个时间段,需要的朋友可以参考下
收藏 0 赞 0 分享

mysql的中文数据按拼音排序的2个方法

这篇文章主要介绍了mysql的中文数据按拼音排序的2个方法,用于一些特殊环境,需要的朋友可以参考下
收藏 0 赞 0 分享

MySQL定期分析检查与优化表的方法小结

听DBA的人说,相比oracle,MySQL就是一个玩具级别的数据库,在网易门户中,DBA基本很少去管理到MySQL的东西,所以我们产品使用到的MySQL的一些配置和优化还是需要我们开发人员自己动手,下面就简单介绍一下实用的定期优化方法
收藏 0 赞 0 分享
查看更多