gtid实现MySQL高可用_consul1.6实现Mysql-Gtid主从读写分离和高可用-03

规划

8f1a0f3ed397464b9563ba56afe981ff.png

Mysql Gtid主从配置

https://blog.51cto.com/9025736/2500516

consul集群搭建

https://blog.51cto.com/9025736/2500976

创建mysql用户并授权(mysql服务器需要授权)

MySQL [(none)]> grant all on *.* to 'han'@'%' identified by 'hanye131';

MySQL [(none)]> flush privileges;

配置consul (consul client端 server3 和server4)

[root@server4 consul.d]# cd /etc/consul.d

[root@server4 consul.d]# cat mysql-write.json

{

"services": [

{

"name": "mysql-master",

"tags": [

"mysql-179"

],

"address": "192.168.31.179",

"port": 3306,

"checks": [

{

"args": ["/usr/bin/bash","/data/mysql_master.sh"],

"interval": "10s",

"timeout": "1s"

}

]

}

]

}

[root@server4 consul.d]# cat mysql-readonly.json

{

"services": [

{

"name": "mysql-slave",

"tags": [

"mysql-180"

],

"address": "192.168.31.180",

"port": 3306,

"checks": [

{

"args": ["/usr/bin/bash","/data/mysql_slave.sh"],

"interval": "10s",

"timeout": "1s"

}

]

}

]

}

[root@server4 consul.d]# cat /data/mysql_master.sh

#!/bin/bash

mysql -uhan -phanye131 -h 192.168.31.179 -e "select 1;"

if [ $? -eq 0 ]; then

exit 0

else

exit 2

fi

[root@server4 consul.d]# cat /data/mysql_slave.sh

#!/bin/bash

mysql -uhan -phanye131 -h 192.168.31.180 -e "select 1;"

if [ $? -eq 0 ]; then

exit 0

else

exit 2

fi

[root@server4 consul.d]# scp /data/mysql_*.sh server3:/data/

[root@server4 consul.d]# scp /etc/consul.d/mysql-* server3:/etc/consul.d/

重载consul(server3和server4)

consul reload

测试检测

a0d4de9bb7e247fd863854a321ebaa79.png

77736e7faacf3f0053aaab82e3da0fc3.png

e6dd03441b55a5aeb2ac32ad840576e5.png

d6827a4a0b4e07c907ef0d6dcae69787.png

停止server3 consul

d023aeff9b8065de4487fa00b492eb11.png

[root@server2 consul.d]# dig mysql-master.service.consul

[root@server2 consul.d]# dig mysql-slave.service.consul

正常登录访问

4d6c129e04a72576b3105fe02ae47f82.png

高可用配置

配置consul (consul client端 server3 和server4)

[root@server3 consul.d]# cat mysql-write.json

{

"services": [

{

"id": "mysql1",

"name": "mysql",

"tags": [

"master"

],

"address": "192.168.31.178",

"port": 3306,

"checks": [

{

"args": ["/usr/bin/bash","/data/mysql_master.sh"],

"interval": "5s"

}

]

},

{

"id": "mysql2",

"name": "mysql",

"tags": [

"master"

],

"address": "192.168.31.179",

"port": 3306,

"checks": [

{

"args": ["/usr/bin/bash","/data/mysql_master2.sh"],

"interval": "5s"

}

]

}

]

}

脚本

[root@server3 consul.d]# cat /data/mysql_master.sh /data/mysql_master2.sh

#!/bin/bash

mysql -uhan -phanye131 -h 192.168.31.179 -e "select 1;"

if [ $? -eq 0 ]; then

exit 0

else

exit 2

fi

#!/bin/bash

mysql -uhan -phanye131 -h 192.168.31.178 -e "select 1;"

if [ $? -eq 0 ]; then

exit 0

else

exit 2

fi

我这里脚本仅测试Mysql服务是否在线 MHA或者GTID实现mysql集群 需要自己配合脚本处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值