Maxscale Keepalived MySQL实现高可用读写分离集群

图片是模拟两个从节点down是否正常提供服务        

        访问http://ip:8989端口,登录名admin,密码mariadb

环境说明:

IP地址数据库服务读写分离代理服务负载均衡服务虚拟IP
192.168.100.213MySQL7.x主maxscale-2.5.9主Keepalived主192.168.100.216
192.168.100.214MySQL7.x从maxscale-2.5.9从Keepalived从
192.168.100.215MySQL7.x从   

软件下载链接地址:
MariaDBMaxScale2.5版本-MySQL文档类资源-CSDN下载MariaDBMaxScale2.5版本1、实现MySQL、mariadb数据库读写分离。2更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/duanph/83935663

1、MySQL读写分离集群

         本文不在具体描述安装MySQL集群一主两从搭建,主要通过maxscale中间件服务实现MySQL集群读写分离,主从故障自动切换高可用数据库集群。

Maxscale代理MySQL实现读写分离主(写)从(读)故障切换高可用,keepalived负载均衡服务解决maxscale单点故障问题实现高可用。

         以下主要说明搭建maxscale-2.5.9高可用读写分离中间件的详细部署为主。

2、Keepalived负载均衡

 安装负载均衡服务

        yum install keepalived -y

2.1主备配置文件修改

cat  /etc/keepalived/keepalived.conf

vrrp_instance VI_1 {

    state BACKUP           #主master备backup

    interface ens192

    virtual_router_id 61

    priority 200

    advert_int 1

    unicast_src_ip 192.168.100.213

    nopreempt

    unicast_peer {

        192.168.100.214

    }

    authentication {

        auth_type PASS

        auth_pass 7893103

    }

    track_script {

        checknginx

    }

    virtual_ipaddress {

        192.168.100.216

    }

}

安装比较简单这里不在详细描述

3、Maxscale主备

3.1服务安装:

         tar -zxvf maxscale-2.5.9.rhel.7.tar.gz

         mv maxscale-2.5.9.rhel.7 maxscale-2.5.9

3.2创建Maxscale监控账号

CREATE USER 'monitor_user'@'%' IDENTIFIED BY 'my_password';

GRANT REPLICATION CLIENT on *.* to 'monitor_user'@'%';

GRANT SUPER, RELOAD on *.* to 'monitor_user'@'%';

3.3通过MySQL主库配置权限

GRANT SELECT ON mysql.user TO 'maxscale'@'%';

GRANT SELECT ON mysql.db TO 'maxscale'@'%';

GRANT SELECT ON mysql.tables_priv TO 'maxscale'@'%';

GRANT SELECT ON mysql.columns_priv TO 'maxscale'@'%';

GRANT SELECT ON mysql.proxies_priv TO 'maxscale'@'%';

GRANT SELECT ON mysql.roles_mapping TO 'maxscale'@'%';

GRANT SHOW DATABASES ON *.* TO 'maxscale'@'%';

flush privileges;

3.4配置文件修改

cat  /opt/maxscale-2.5.9/etc/maxscale.cnf

# 全局模块

[maxscale]

# 开启线程个数,默认为1.设置为auto会同cpu核数相同

threads=auto

# timestamp精度

ms_timestamp=1

# 记录info

log_info=0

log_debug=0

log_warning=1

log_notice=1

logdir=/opt/maxscale-2.5.9/var/logs/

piddir=/opt/maxscale-2.5.9/var/logs/

datadir=/opt/maxscale-2.5.9/

cachedir=/opt/maxscale-2.5.9/cache/

# 日志递增

log_augmentation=1

# 打开GUI图形管理页面

admin_host=0.0.0.0

# 不设置HTTPS服务

admin_secure_gui=false

# 主机模块

# 指定服务器的unix socket路径

# 如果 MaxScale 和 MariaDB 在同一台主机上,可以使用这种方法连接

# 注意,socket 与 address/port 冲突,只能选其一。

# 同时需要注意 MariaDB 的权限配置。

#socket=/var/lib/mysql/mysql.sock

[server1]

type=server

address=192.168.100.213

port=3307

protocol=MariaDBBackend

[server2]

type=server

address=192.168.100.214

port=3307

protocol=MariaDBBackend

[server3]

type=server

address=192.168.100.215

port=3307

protocol=MariaDBBackend

# 故障转移监控模块

[MariaDB-Monitor]

type=monitor

# 核心监控模块

module=mariadbmon

servers=server1,server2,server3

user=monitor

password=monitor@123

# 每隔2秒探测一次

monitor_interval=2000

# 打开自动故障转移

auto_failover=true

# 打开自动重新加入

auto_rejoin=true

# slave 全部失效时 master 支撑全部请求

detect_stale_master=true

# 服务模块

# 读写分离,基于statement SQL解析的方式

[Read-Write-Service]

type=service

router=readwritesplit

router_options=master,slave

servers=server1,server2,server3

# 默认禁止root用户访问,设置为1开启

enable_root_user=1

# 路由账号用于读写分离

user=maxscale

password=Maxscalepassword

max_slave_connections=100%

# 当主服务器挂了时,客户端的写入操作将会返回错误,服务器以只读模式运行。

# 如果没有设置此值,那么当客户端执行写入操作时,MaxScale将会直接断开连接。

master_failure_mode=error_on_write

# 配合上一个选项取消只读模式,客户端的写入请求将会被重新处理。

master_reconnection=true

# 默认读是不被路由到master,设置为true允许master用于读取

#master_accept_reads=true

# 设置路由器会话随时使用的最大从站数量

#max_slave_connections=2

#auth_all_servers=true

# 身份验证失败和警告的日志记录,记录那些试图连接到MaxScale和来自哪里

#log_auth_warnings=true

# 强制select走master

#filters=Hint 

#允许slave落后master多少秒

#max_slave_replication_lag=3600

[Read-Write-Listener]

type=listener

service=Read-Write-Service

protocol=MySQLClient

# 一定要指定!! 默认绑定IPv6

address=192.168.100.216

port=3306

3.5创建相关目录:

mkdir -p /opt/maxscale-2.5.9/var/logs/

mkdir -p /opt/maxscale-2.5.9/cache/

3.6创建用户:

groupadd maxscale

useradd -g maxscale maxscale

3.7修改目录权限

chown -R maxscale.maxscale maxscale-2.5.9/

3.8服务启动:

/opt/maxscale-2.5.9/bin/maxscale --user=maxscale --basedir=/opt/maxscale-2.5.9/ --config=/opt/maxscale-2.5.9/etc/maxscale.cnf

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值