MySQL Route 从库查询负载均衡

mysql route 是mysql官方出的中间件。
在这里插入图片描述
此篇文章是上一篇文章的后续,因为实在太长了,所以分成俩篇。

上一篇只做了一个主从复制(主1和从1)和主主复制(主1和主2),所以我们现在需要再增加一个从2。

新增从2,如果上一篇已经生成了容器就不需要做这一步

# docker run --name Slave12 -v /dockerdata/mysql/Slave2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD='password' -d -p 3003:3306 mysql:5.7

然后需要你按照主1和从1的配置流程去配置主1与从2。

下载mysql route

# cd /usr/local/
# wget https://dev.mysql.com/get/Downloads/MySQL-Router/mysql-router-8.0.11-1.el7.x86_64.rpm
# rpm -ivh mysql-router-8.0.11-1.el7.x86_64.rpm

查看版本确认已安装

# mysqlrouter -V
# find / -name mysqlrouter.conf
# vi /etc/mysqlrouter/mysqlrouter.conf

修改配置文件

# 默认的日志插件等相关配置路径
[DEFAULT]
logging_folder = /var/log/mysqlrouter/
plugin_folder = /usr/lib64/mysqlrouter
runtime_folder = /var/run/mysqlrouter
config_folder = /etc/mysqlrouter
# 日志显示级别
[logger]
level = INFO

[keepalive]
interval = 60

# 当主节点宕机后自动由第二节点接手服务
[routing:failover]
# mysql route地址
bind_address = 192.168.247.140
# bind_address使用的默认端口
bind_port = 10000
# 连接几秒算超时
connect_timeout = 3
# 服务器的最大连接数
max_connections = 1024
# 主库地址,以逗号分隔
destinations = 192.168.247.140:3000
# 路由模式,读和写
mode = read-write

# 设置从服务器的负载均衡
[routing:balancing]
bind_address = 192.168.247.140
bind_port = 10001
connect_timeout = 3
max_connections = 1024
mode = read-only
destinations = 192.168.247.140:3002,192.168.247.140:3003

更多配置文件选项

启动mysqlrouter
更改权限

# chmod 666 /var/log/mysqlrouter/mysqlrouter.log

启动

# systemctl start mysqlrouter.service

设置开机启动

# systemctl enable mysqlrouter.service

查看启动状态

# systemctl status mysqlrouter.service

在这里插入图片描述

测试负载均衡

# mysql -h 192.168.247.140 -umysql -pweikaixxxxxx -P10001 -e "show variables like 'hostname';"

在这里插入图片描述
可见,已转发到俩个从库。

测试查询语句是否正常

主库加入数据
在这里插入图片描述
查询

# mysql -h 192.168.247.140 -umysql -pweikaixxxxxx -P10001 -e "SELECT * FROM test.test WHERE name='weikaixxxxxx';"

报错,不允许这个用户使用select。

使用root用户修改查询权限,执行俩次,因为从库已经负载均衡。

mysql -h 192.168.247.140 -uroot -ppassword -P10001 -e "UPDATE mysql.user SET Select_priv='Y' WHERE User='mysql'"

重启俩个从库容器

# docker restart 容器id

再次查询就有了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值