main 是默认的”数据库”名,表里存放后端db实例、用户验证、路由规则等信息。 表名以 runtime_开头的表示proxysql当前运行的配置内容,不能通过dml语句修改, 只能修改对应的不以 runtime_ 开头的(在内存)里的表,然后 LOAD 使其生效, SAVE 使其存到硬盘以供下次重启加载 disk 是持久化到硬盘的配置,sqlite数据文件 stats 是proxysql运行抓取的统计信息,包括到后端各命令的执行次数、流量、 processlist、查询种类汇总/执行时间,等等 monitor 库存储 monitor 模块收集的信息,主要是对后端db的健康/延迟检查
1.添加监控节点
1 2 3 4
root:~ # mysql -uadmin -padmin -P6032 -h127.0.0.1 #连接至本机ProxySQL的数据库 MySQL [(none)]>insertinto mysql_servers(hostgroup_id,hostname,port) values(10,'192.168.64.142',3306); MySQL [(none)]>insertinto mysql_servers(hostgroup_id,hostname,port) values(10,'192.168.64.143',3306); MySQL [(none)]>select*from mysql_servers;
MySQL> insertinto mysql_replication_hostgroups values(10,20,"test"); 将mysql_replication_hostgroups表的修改加载到RUNTIME生效 MySQL> load mysql servers to runtime; MySQL> save mysql servers to disk; MySQL [(none)]> select * from mysql_servers;
4.配置发送SQL语句的用户
在master节点上创建访问用户
1
MySQL> grantallon *.* to sqluser@'192.168.64.%' identified by'fscx';
MySQL> insertinto mysql_users(username,password,default_hostgroup)values('sqluser','fscx',10); MySQL> load mysql users to runtime; MySQL> save mysql users to disk;
使用sqluser用户测试是否能路由到默认的10写组实现读、写数据 ““ mysql -usqluser -pfscx -P6033 -h127.0.0.1 -e ‘select @@server_id’ mysql -usqluser -pfscx -P6033 -h127.0.0.1 -e ‘create database testdb’ mysql -usqluser -pfscx testdb -P6033 -h127.0.0.1 -e ‘create table t(id int)
MySQL> insert into mysql_query_rules (rule_id,active,match_digest,destination_hostgroup,apply)VALUES (1,1,’^SELECT.*FOR UPDATE$’,10,1),(2,1,’^SELECT’,20,1); MySQL> load mysql query rules to runtime; MySQL> load mysql query rules to runtime; ““ 注意:因ProxySQL根据rule_id顺序进行规则匹配,select … for update规则的 rule_id必须要小于普通的select规则的rule_id