ZBLOG

有没有简单一些的

简化版 ProxySQL 双主读写分离配置

以下是更简单的 ProxySQL 双主读写分离配置步骤:

1. 基本配置(只需执行这些命令)

  1. -- 添加服务器(假设两个主库IP192.168.1.101192.168.1.102
  2. INSERT INTO mysql_servers(hostgroup_id, hostname, port) VALUES
  3. (10, '192.168.1.101', 3306),
  4. (10, '192.168.1.102', 3306),
  5. (20, '192.168.1.101', 3306),
  6. (20, '192.168.1.102', 3306);
  7. -- 设置监控账号(先在MySQL创建好这个用户)
  8. UPDATE global_variables SET variable_value='monitor' WHERE variable_name='mysql-monitor_username';
  9. UPDATE global_variables SET variable_value='monitor_password' WHERE variable_name='mysql-monitor_password';
  10. -- 添加应用用户
  11. INSERT INTO mysql_users(username, password, default_hostgroup) VALUES ('app_user', 'app_password', 10);
  12. -- 简单读写分离规则
  13. INSERT INTO mysql_query_rules (rule_id, active, match_pattern, destination_hostgroup, apply) VALUES
  14. (1, 1, '^SELECT.*FOR UPDATE', 10, 1), -- SELECT FOR UPDATE去写组
  15. (2, 1, '^INSERT', 10,- ^UPDATE', 10,- ^DELETE', 10,- ^SELECT .*INTO OUTFILE ',10 ,- ^SELECT .*INTO DUMPFILE ',10 ,- ^SELECT ', 20 , - SELECT去读组
  16. --使所有配置生效
  17. LOAD MYSQL SERVERS TO RUNTIME;
  18. LOAD MYSQL USERS TO RUNTIME;
  19. LOAD MYSQL QUERY RULES TO RUNTIME;
  20. SAVE MYSQL SERVERS TO DISK;
  21. SAVE MYSQL USERS TO DISK;
  22. SAVE MYSQL QUERY RULES TO DISK;

##2 .验证是否工作

  1. #测试写操作(应该路由到hostgroup=10)
  2. mysql-u app_user-papp_password-h proxysql_ip-P6033-e"CREATE TABLE test.t(id int);"
  3. #测试读操作(应该路由到hostgroup=20)
  4. mysql-u app_user-papp_password-h proxysql_ip-P6033-e"SELECT * FROM test.t;"

##3 .查看路由情况

  1. --查看查询被路由到了哪个组
  2. SELECT hostgroup hg ,sum_time ,count_star ,digest_text FROM stats_mysql_query_digest ORDER BY sum_time DESC;
  3. --查看服务器状态
  4. SELECT * FROM runtime_mysql_servers;

这样就完成了最基本的双主读写分离配置。如果需要更复杂的负载均衡策略或故障转移,可以在此基础上进行扩展。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=23526

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?