19、MySQL高可用和读写分离架构

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我会回答你的问题,以下是mysql5.7双主互备、可用分离+keepalived实战部署步骤与命令和架构图: 1. 架构图 ``` +----------+ | Node 1 | |(Master) | +----------+ |(VIP) | +-----------+-----------+ | | | VIRTUAL IP | | | +-----------+-----------+ | |(VIP) | +----------+ | Node 2 | | (Slave) | +----------+ ``` 注解:Node1与Node2都有mysql服务器,Node1为主节点,Node2为备节点,VIP为虚拟IP,通过keepalived实现主备切换。 2. 部署步骤与命令 2.1 安装MySQL 在Node1和Node2上安装MySQL,可以使用yum或者apt-get安装。 2.2 配置MySQL双主互备 在Node1上执行以下命令: ``` vi /etc/my.cnf # 添加如下内容 [mysqld] server-id=1 log-bin=mysql-bin binlog-format=ROW auto_increment_increment=2 auto_increment_offset=1 ``` 在Node2上执行以下命令: ``` vi /etc/my.cnf # 添加如下内容 [mysqld] server-id=2 log-bin=mysql-bin binlog-format=ROW auto_increment_increment=2 auto_increment_offset=2 ``` 2.3 配置MySQL分离 在Node1上执行以下命令: ``` mysql -u root -p # 创建用于复制的用户 create user 'repl'@'%' identified by 'password'; # 授权 grant replication slave on *.* to 'repl'@'%'; # 查看master状态 show master status; ``` 记录下File和Position的值。 在Node2上执行以下命令: ``` mysql -u root -p # 停止slave stop slave; # 删除所有slave信息 reset slave all; # 配置slave change master to master_host='Node1_IP', master_user='repl', master_password='password', master_log_file='File', master_log_pos=Position; # 开启slave start slave; # 查看slave状态 show slave status\G; ``` 2.4 配置keepalived 在Node1和Node2上都要安装keepalived。 在Node1上执行以下命令: ``` vi /etc/keepalived/keepalived.conf # 添加如下内容 ! Configuration File for keepalived global_defs { router_id MySQL_HA } vrrp_script chk_mysql { script "/usr/local/sbin/chk_mysql.sh" interval 2 weight -2 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 101 virtual_ipaddress { 192.168.0.100/24 dev eth0 label eth0:0 } track_script { chk_mysql } } ``` 在Node2上执行以下命令: ``` vi /etc/keepalived/keepalived.conf # 添加如下内容 ! Configuration File for keepalived global_defs { router_id MySQL_HA } vrrp_script chk_mysql { script "/usr/local/sbin/chk_mysql.sh" interval 2 weight -2 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 100 virtual_ipaddress { 192.168.0.100/24 dev eth0 label eth0:0 } track_script { chk_mysql } } ``` 2.5 配置chk_mysql.sh 在Node1和Node2上都要创建chk_mysql.sh文件,并赋予执行权限。 在Node1上执行以下命令: ``` vi /usr/local/sbin/chk_mysql.sh # 添加如下内容 #!/bin/bash if [ $(ps -ef | grep -v grep | grep mysqld | wc -l) -eq 0 ]; then service keepalived stop fi # 赋予执行权限 chmod +x /usr/local/sbin/chk_mysql.sh ``` 在Node2上执行以下命令: ``` vi /usr/local/sbin/chk_mysql.sh # 添加如下内容 #!/bin/bash if [ $(ps -ef | grep -v grep | grep mysqld | wc -l) -eq 0 ]; then service keepalived stop fi # 赋予执行权限 chmod +x /usr/local/sbin/chk_mysql.sh ``` 3. 总结 以上就是MySQL5.7双主互备、可用分离+keepalived实战部署步骤与命令和架构图。通过以上部署,可以实现MySQL可用、负载均衡、分离等功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值