Proxysql是基于mysql的一款开源的中间件的产品,是一个灵活的Mysql代理层,可以实现读写分离,支持Query路由功能,支持动态指定某个sql进行缓存,支持动态加载配置信息(无须重启proxysql服务),支持故障切换和sql的过滤功能。
相关的网站: https://www.proxysql.com/ https://github.com/sysown/proxysql/wiki
安装:可以直接去github上面下载rpm包安装
启动|关闭 proxysql程序: systemctl start|status|stop proxysql
1.ProxySql的admin管理接口
当proxysq启动后,将监听两个端口:
1)admin管理接口,默认端口是6032.该端口用于查看、查看proxysql
2) 接受sql语句的接口,默认端口未6033,这个接口类似于mysql的3306端口
默认的工作结构如下:
2.proxysql登录
proxysql管理接口默认使用admin管用用户的,只允许本地登录(如下),proxysql的配置几乎都保存在自带的的库中。
[root@mysql03 src]# mysql -u admin -padmin -h 127.0.0.1 -P6032 --prompt='Aadmin>' mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.5.30 (ProxySQL Admin Module) Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. Aadmin>show databases; +-----+---------------+-------------------------------------+ | seq | name | file | +-----+---------------+-------------------------------------+ | 0 | main | | | 2 | disk | /var/lib/proxysql/proxysql.db | | 3 | stats | | | 4 | monitor | | | 5 | stats_history | /var/lib/proxysql/proxysql_stats.db | +-----+---------------+-------------------------------------+ 5 rows in set (0.00 sec) Aadmin>
3.Proxysql中管理结构自带的系统库
在proxysql,6032端口主要管理以下五个库:main、disk、stats、monitor、stats_history
1)main: main库中重要的表有如下:
mysql_servers:后端可以连接mysql服务器的列表
mysql_users:配置后端数据库的账号和监控账号
mysql_query_rules:指定query路由到后端不同服务器的规则列表
注意:表名以runtime_开头的表示Proxysql当前运行的配置内存,不能直接改,不带runtime是可以进行修改的
2) disk:这个库里面都持久化磁盘的配置
3) stats:统计信息的汇总
4) stats_history: Proxysql收集的有关其内部功能的历史指标
4.Proxysql管理接口的多层配置关系
整套系统主要分为三层:
顶层: runtime 中间层: memory (主要修改的配置表) 持久层: disk和cfg file
runtime: 代表Proxysql 当前正在使用的配置,无法直接修改此配置,必须要从下一层(mem层)"load"进来,
memory:memory层上面连接runtime层,下面连接持久层,这层可以在线操作proxysql配置,随便修改,不会影响生产环境,确认正常之后再加载到runtime和持久磁盘上。
disk和config file: 持久化配置信息。重启时,可以重磁盘快速加载回来。
5.在不同层次间移动配置
为了将配置持久化到磁盘或者应用到runtime,在管理接口下有一系列管理命令来实现它们。
1)user 相关
1.1 MEM加载到runtime --> load mysql users to runtime;
1.2 runtime保存至MEM --> save mysql users to memory;
1.3 disk加载到mem --> load mysql users from disk;
1.4 mem到disk --> save mysql users to disk;
1.5 cfg 到mem --> load mysql users form cfg
2) server 相关配置
2.1 MEM加载到runtime --> load mysql servers to runtime;
2.2 runtime保存至MEM --> save mysql servers to memory;
2.3 disk加载到mem --> load mysql servers from disk;
2.4 mem到disk --> save mysql servers to disk;
2.5 cfg 到mem --> load mysql servers form cfg
3) mysql query rules 配置
3.1 MEM加载到runtime --> load mysql query rules to runtime;
3.2 runtime保存至MEM --> save mysql query rules to memory;
3.3 disk加载到mem --> load mysql query rules from disk;
3.4 mem到disk --> save mysql query rules to disk;
3.5 cfg 到mem --> load mysql query rules form cfg
4) mysql variables配置
4.1 MEM加载到runtime --> load mysql variables to runtime;
4.2 runtime保存至MEM --> save mysql variables to memory;
4.3 disk加载到mem --> load mysql variables from disk;
4.4 mem到disk --> save mysql variables to disk;
4.5 cfg 到mem --> load mysql variables form cfg
总结: 日常配置其实大部分在MEM配置中,然后load到runtime,然后save到disk,cfg很少使用。
例如:load xxx to runtime; save xxx to disk;
注意: 只有load到runtime状态时才会验证配置,在保存mem到disk时,都不会发生任何警告或错误。当load到runtime时,如果出现错误,将恢复为之前报错的状态,这时可以去检查错误日志。
标签:load,01,runtime,--,中间件,ProxySQL,mysql,proxysql,disk From: https://www.cnblogs.com/zmc60/p/17299465.html