mysql双机热备 不忽略异常_Mysql数据库双机热备难点分析

小编在以前给大家介绍过关于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查询状态

b881f0cfb7499c6571cf17a3a5698663.png

第二台主服务器192.168.71.139

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

使用show master status查询状态

700de4223aab914714117466698e776e.png

此时,需要重新启动两台服务器的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

6c9216cb788eadc0e83a27485c494e8f.png

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

5be00aba4571da634e1ec7926f6091c3.png

三:测试

在任意一台服务器执行如下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);

结果如下图:

bc44fae9d47218521f2c26fc4d1a7ca4.png

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

希望与广大网友互动??

点此进行留言吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值