admin> save mysql variables to disk;
然后重启ProxySQL。
service proxysql stop
service proxysql start
[root@node2 ~]# netstat -luntp|grep proxy
tcp 0 0 0.0.0.0:6032 0.0.0.0:* LISTEN 11543/proxysql
tcp 0 0 0.0.0.0:6033 0.0.0.0:* LISTEN 11543/proxysql
tcp 0 0 0.0.0.0:6034 0.0.0.0:* LISTEN 11543/proxysql
监听到不同端口,再去修改 mysql_query_rules 表
insert into mysql_query_rules(rule_id,active,proxy_port,destination_hostgroup,apply) values( 1, 1, 6033, 10, 1), ( 2, 1, 6034, 20, 1);
load mysql query rules to runtime;
save mysql query rules to disk;
1.1 mysql_query_rules表的介绍
rule_id :规则的id。 规则是按照rule_id的顺序进行处理的 。
active :只有该字段值为1的规则才会加载到runtime数据结构,所以只有这些规则才会被查询处理模块处理。
username :用户名筛选,当设置为非NULL值时,只有匹配的用户建立的连接发出的查询才会被匹配。
schemaname :schema筛选,当设置为非NULL值时,只有当连接使用 schemaname 作为默认schema时,该连接发出的查询才会被匹配。(在MariaDB/MySQL中,schemaname等价于databasename)。
flagIN,flagOUT :这些字段允许我们创建"链式规则"(chains of rules),一个规则接一个规则。
apply :当匹配到该规则时,立即应用该规则。
client_addr :通过源地址进行匹配。
proxy_addr :当流入的查询是在本地某地址上时,将匹配。
proxy_port :当流入的查询是在本地某端口上时,将匹配。
digest :通过digest进行匹配,digest的值在 stats_mysql_query_digest.digest 中。
match_digest :通过正则表达式匹配digest。
match_pattern :通过正则表达式匹配查询语句的文本内容。
negate_match_pattern :设置为1时,表示未被 match_digest 或 match_pattern 匹配的才算被成功匹配。也就是说,相当于在这两个匹配动作前加了NOT操作符进行取反。
re_modifiers :RE正则引擎的修饰符列表,多个修饰符使用逗号分隔。指定了 CASELESS 后,将忽略大小写。指定了 GLOBAL 后,将替换全局(而不是第一个被匹配到的内容)。为了向后兼容,默认只启用了 CASELESS 修饰符。
replace_pattern :将匹配到的内容替换为此字段值。它使用的是RE2正则引擎的Replace。注意,这是可选的,当未设置该字段,查询处理器将不会重写语句,只会缓存、路由以及设置其它参数。
destination_hostgroup :将匹配到的查询路由到该主机组。但注意,如果用户的 transaction_persistent=1 (见 mysql_users 表),且该用户建立的连接开启了一个事务,则这个事务内的所有语句都将路由到同一主机组,无视匹配规则。
cache_ttl :查询结果缓存的时间长度(单位毫秒)。注意,在ProxySQL 1.1中,cache_ttl的单位是秒。
reconnect :目前不使用该功能。
timeout :被匹配或被重写的查询执行的最大超时时长(单位毫秒)。如果一个查询执行的时间太久(超过了这个值),该查询将自动被杀掉。如果未设置该值,将使用全局变量 mysql-default_query_timeout 的值。
retries :当在执行查询时探测到故障后,重新执行查询的最大次数。如果未指定,则使用全局变量 mysql-query_retries_on_failure 的值。
delay :延迟执行该查询的毫秒数。本质上是一个限流机制和QoS,使得可以将优先级让位于其它查询。这个值会写入到 mysql-default_query_delay 全局变量中,所以它会应用于所有的查询。将来的版本中将会提供一个更高级的限流机制。
mirror_flagOUT和mirror_hostgroup :mirroring相关的设置,目前mirroring正处于实验阶段,所以不解释。
error_msg :查询将被阻塞,然后向客户端返回 error_msg 指定的信息。
sticky_conn :当前还未实现该功能。
multiplex :如果设置为0,将禁用multiplexing。如果设置为1,则启用或重新启用multiplexing,除非有其它条件(如用户变量或事务)阻止启用。如果设置为2,则只对当前查询不禁用multiplexing。默认值为 NULL ,表示不会修改multiplexing的策略。
log :查询将记录日志。
apply :当设置为1后,当匹配到该规则后,将立即应用该规则,不会再评估其它的规则(注意:应用之后,将不会评估 mysql_query_rules_fast_routing 中的规则)。
comment :注释说明字段,例如描述规则的意义。
proxysql的花式路由规则
标签:参数 tick 等价 git dba active pat 事务 proxy
查看更多关于proxysql的花式路由规则的详细内容...