浅谈MySQL路由

mysql-router介绍

在这里插入图片描述

  • mysql-router是一个对应用程序透明的InnoDB Cluster连接路由服务,提供负载均衡、应用连接故障转移客户端路由
  • 利用路由器连接路由特性,用户可以编写应用程序连接到路由器,并令路由器使用相应路由策略来处理连接,使其连接正确MySQL数据库服务器

下载mysql-router

在这里插入图片描述

安装mysql-router

  • 只需要在一台主机安装即可,这里我装在node1
[root@mysql-node1 ~]# rpm -ivh mysql-router-community-8.4.0-1.el7.x86_64.rpm
  • 查看软件包的相关文件
[root@mysql-node1 ~]# rpm -ql mysql-router-community
/etc/logrotate.d/mysqlrouter
/etc/mysqlrouter
/etc/mysqlrouter/mysqlrouter.conf
/usr/bin/mysqlrouter

实验

  • node1上关闭MySQL服务,作为mysql-router器
[root@mysql-node1 ~]# /etc/init.d/mysqld stop
  • node2node3上开启MySQL,提供MySQL服务
[root@mysql-node2 ~]# /etc/init.d/mysql.server start

[root@mysql-node3 ~]# /etc/init.d/mysqld start
  • 修改mysql-router上的配置文件 /etc/mysqlrouter/mysqlrouter.conf
[root@mysql-node1 ~]# vim /etc/mysqlrouter/mysqlrouter.conf
......
......
......
[routing:ro]
bind_address = 0.0.0.0  #监听的流量为所有访问的ip地址
bind_port = 7111   #指定了路由服务监听的端口号是7001。任何发送到该机器7001端口的流量都将被路由服务处理
destinations = 172.25.254.20:3306,172.25.254.30:3306  #流量将被路由到的目的地列表
routing_strategy = round-robin  #路由策略为轮询

[routing:rw]
bind_address = 0.0.0.0
bind_port = 7112
destinations = 172.25.254.20:3306,172.25.254.30:3306
routing_strategy = first-available  #哪个MySQL服务器器先响应,就发给谁
  • 启动mysqlrouter服务
[root@mysql-node1 ~]# systemctl start mysqlrouter

[root@mysql-node1 ~]# netstat -antlupe | grep mysqlrouter
tcp        0      0 0.0.0.0:7111            0.0.0.0:*               LISTEN      988        117488     4944/mysqlrouter
tcp        0      0 0.0.0.0:7112            0.0.0.0:*               LISTEN      988        117489     4944/mysqlrouter
  • node2node3上建立测试用户
#node2上
mysql> create user root@"%" identified by "123456";

mysql> grant all on *.* to root@"%";
#node3上
mysql> create user root@"%" identified by "123456";

mysql> grant all on *.* to root@"%";
  • 测试
#7111端口使用的是轮询算法
[root@mysql-node1 ~]# mysql -uroot -p -h 172.25.254.10 -P 7111
Enter password:
mysql> select @@server_id;
+-------------+
| @@server_id |
+-------------+
|          20 |  #我们发现登录是的node2
+-------------+

mysql> quit
Bye
[root@mysql-node1 ~]# mysql -uroot -p -h 172.25.254.10 -P 7111
Enter password:
mysql> select @@server_id;
+-------------+
| @@server_id |
+-------------+
|          30 |  #我们发现登录的是node3
+-------------+
  • mysql router 并不能限制数据库的读写,仅访问分流
  • mysql中的用户可以同名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

^~^前行者~~~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值