Mysql的双主模式

1. 高可用的机器

2. 原理:

高可用也就是说两台mysql 运行,其中一台机器挂掉了,能立马调用另外一台机器,保证调用mysql 能正常运行,
两台mysql 的调用来回切换,采用的是keepalived: 也就是说才保证通过keeplived  中来定义一个虚拟ip  然后调用虚拟ip,keeplived 
通过心跳机制来调用和mysql 互相监控。

3.keepalived 保证高可用

Keepalived是基于VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)协议的一款高可用软件。Keepailived有一台主服务器(master)和多台备份服务器(backup),在主服务器和备份服务器上面部署相同的服务配置,使用一个虚拟IP地址对外提供服务,当主服务器出现故障时,虚拟IP地址会自动漂移到备份服务器。

4. 先搭建一主一从

4.1

模式ip
Master192.168.1.152
Slave192.168.1.153

4.2 配置master 机器(192.168.1.152)

4.2.1 修改192.168.1.152 机器的配置文件:
修改192.168.1.152 中MySQL的/etc/my.cnf配置文件。

#MySQL服务器唯一id
server_id = 152
#binlog日志类型
log-bin=mysql-bin
binlog_format=mixed
#开启slave中继日志
relay_log=mysql-relay
4.2.2 重启服务:
1.service mysqld restart
2.创建用户,在主机上使用root@localhost登录,授权从机可以使用哪个用户登录
GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';
3.查看master 状态:
show master status;
结果如下表格:
FilePositionBinlog_Do_DBBinlog_Do_DBExecuted_Gtid_Set
mysql-bin.000001154
执行命令:

4.3 配置Slave(192.168.1.153)

1.修改192.168.1.153 中MySQL的/etc/my.cnf配置文件。
server_id = 1503
log-bin=mysql-bin
binlog_format=mixed
relay_log=mysql-relay
2. 执行命令:
 change master to master_user='slave', master_password='123456',master_host='192.168.1.152',master_log_file='mysql-bin.000001',master_log_pos=154;
 3.启动slave
 start slave;
 4.查看命令状态:如下入
 show slave status \G;

在这里插入图片描述
两个yes 就表示成功。

5. 双主模式

模式ip
Master (Slave)192.168.1.152
Slave(Master)192.168.1.153

5.1 修改192.168.1.153 机器的配置文件:

1. 修改192.168.1.153 中MySQL的/etc/my.cnf配置文件。
#MySQL服务器唯一id
server_id = 15
#binlog日志类型
log-bin=mysql-bin
binlog_format=mixed
2.创建slave 用户:
 GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';
 3.查看master 状态:
show master status;
FilePositionBinlog_Do_DBBinlog_Do_DBExecuted_Gtid_Set
mysql-bin.000001356

5.2 修改192.168.1.152 执行命令:

1.执行命令
 change master to master_user='slave', master_password='123456',master_host='192.168.1.153',master_log_file='mysql-bin.000001',master_log_pos=356;
 3.启动slave
 start slave;
 4.查看命令状态:如下入

在这里插入图片描述

1.有一个错误:
2020-12-08T17:24:00.656737Z 9 [ERROR] Slave I/O for channel ‘’: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work. Error_code: 1593
解决办法,修改其中一台服务器的server-uuid,并保证server-uuid的格式正确,修改完成之后重启Mysql服务就可以了。
在修改配置文件之前,先登录Mysql客户端查看uuid,把返回的uuid复制,放到要修改的配置文件即可。

修改uui 的配置文件:
# find / -name 'auto.cnf'
#vim /data/mysql/auto.cnf
[auto]
server-uuid=804f2ebe-3a1c-11e8-ab46-000c29133368 # 按照这个16进制格式,修改server-uuid 随便修改一个值,重启mysql即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值