【问题标题】:In Proxysql Insert,Update are not happening on Master在 Proxysql 插入中,Master 上没有发生更新
【发布时间】:2020-02-25 05:39:20
【问题描述】:

我已经用主从配置了 Proxysql。 我只配置了一个从属设备并开启。而不是在主服务器上发生update,insert,而是在从服务器上发生。我的 proxysql 服务器和从服务器是一样的。

我给出的查询规则是:

INSERT INTO mysql_query_rules (active, match_digest, destination_hostgroup, apply) VALUES (1, '^SELECT.*', 1, 0); 
INSERT INTO mysql_query_rules (active, match_digest, destination_hostgroup, apply) VALUES (1, '^SELECT.*FOR UPDATE', 0, 1); 

hostgroup id 0 用于更新,1 用于select

一些供参考的结果是:

Admin>SELECT hostgroup_id,hostname,port,status,weight FROM runtime_mysql_servers;
+--------------+---------------+------+--------+--------+
| hostgroup_id | hostname      | port | status | weight |
+--------------+---------------+------+--------+--------+
| 0            | 127.0.0.1 | 3306 | ONLINE | 1          |
| 1            | 127.0.0.1 | 3306 | ONLINE | 1          |
| 1            | 127.0.0.2 | 3306 | ONLINE | 1000       |
| 0            | 127.0.0.2 | 3306 | ONLINE | 1000       |
+--------------+---------------+------+--------+--------+

帮助我,以便我可以将我的 update,insert 查询转发到主服务器,即 127.0.0.1 和 select 查询转发到从属服务器,即 127.0.0.2

【问题讨论】:

    标签: proxysql


    【解决方案1】:

    在您的INSERT INTO mysql_query_rules 中,您将第一条规则的apply 值设置为0。您可以将其设置为 1 以在匹配时停止进一步处理。

    您的服务器好像重复了?

    您可能还想检查您的 proxysql 用户的 default_hostgroup 值。

    【讨论】:

    • proxysql 文档中,他们似乎总是在插入服务器或规则时指定主键。这样以后可以更轻松地编辑或删除规则或服务器。
    【解决方案2】:

    在我看来,您的设置不完整且不正确。我相信你在 mysql_servers 中有 4 行,你应该只有 2 或 3 行,这取决于你是否希望 master 也处理选择。需要删除第 4 行。这将使从属设备成为写入组的一部分。第二行是可选的,用于允许在主服务器上进行查询。

    您还需要添加规则以将查询路由到 mysql_query_rules 表。这就是您定义哪个主机组应该获得哪种类型的查询的地方。如需更多指导,请参阅https://proxysql.com/documentation/ProxySQL-Configuration/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-28
      • 2019-10-14
      • 2022-07-29
      • 2021-01-12
      • 1970-01-01
      • 1970-01-01
      • 2019-09-21
      • 2014-02-23
      相关资源
      最近更新 更多