ProxySQL admin接口支持MySQL协议,通过客户端连接到admin接口,输入命令即可配置。ProxySQL解析所有通过admin接口发送过来的命令,如果没有什么问题的话,就将他发生到SQLite引擎执行
记住SQLite3余MySQL之间的存在的差异,不是说所有在MySQL上运行的SQL都能在SQLite3上执行,比如use命令,在SQLite3中并不能像你想象的那样会change到指定的schema。
连接到ProxySQL admin interface,我们能看到下面存在哪些数据库,跟MySQL一样,执行show databases即可
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 mysql> show databases; 2 +-----+---------+------------------+ 3 | seq | name | file | 4 +-----+---------+------------------+ 5 | 0 | main | | 6 | 2 | disk | /tmp/proxysql.db | 7 | 3 | stats | | 8 | 4 | monitor | | 9 | 5 | myhgm | | 10 +-----+---------+------------------+ 11 5 rows in set (0.00 sec)
下面谈谈这些schema的作用:
- main:内存配置数据库,通过这个数据库,很容易的就能自动的查询和更新ProxySQL的配置。执行LOAD MYSQL USERS FROM MEMORY或者类似命令,就能将内存中的配置加载到runtime。
- disk:持久化到磁盘的main数据库的物理镜像,在重启的时候,main数据库的数据并不会被持久化,所以,要么从disk数据库加载,或者通过配置文件
- stats:统计通过proxy内部函数收集runtime状态的指标,比如:每个路由规则匹配的次数,当前都有什么查询在执行当中
- monitor:ProxySQL连接到的后台MySQL server的相关的指标,比如:ping后台服务器的最大、最小时间
- myhgm:仅仅debug模式下用到
有两类具有默认认证的用户可以连接到admin数据库进行操作:
- user: admin/password: 能够读写所有表的admin用户
- user: stats/password: 具有只读stattistics数据库的stats用户,这个用户只会从ProxySQL拉取统计指标数据,不会暴露其他数据。
以上认证配置是通过admin-admin_credentials
和 admin-stats_credentials
变量来配置的。