MySQL-ProxySQL中间件(一)| ProxySQL基本概念
目录
ProxySQL
安装

连接ProxySQL


ProxySQL 运行机制
RUNTIME
MEMORY
mysql_servers - ProxySQL连接到的后端服务器列表
mysql_users - 连接到ProxySQL的用户及其凭据列表。 请注意,ProxySQL也将使用相同的凭据连接到后端服务器!
mysql_query_rules - 将流量路由到各种后端服务器时评估的查询规则列表。 这些规则还可以重写查询,甚至可以缓存已执行查询的结果。
global_variables - 代理配置使用的全局变量列表,可在运行时调整。
DISK 和 CONFIG FILE

启动过程
配置文件有4个变量,即使存在proxysql.db,也始终会从配置文件里去解析:
1. datadir:
定义了ProxySQL datadir的路径,其中存储了数据库文件,日志和其他文件
2. restart_on_missing_heartbeats(1.4.4中的新增内容):
如果MySQL线程错过了restart_on_missing_heartbeats心跳,则proxysql将引发SIGABRT信号并重新启动。 默认值为10。
详情请见:https://github.com/sysown/proxysql/wiki/Watchdog。
3. execute_on_exit_failure(1.4.4中的新增内容):
如果设置,ProxySQL父进程将在每次ProxySQL崩溃时执行定义的脚本。 建议使用此设置生成警报或记录事件。
请注意,在崩溃的情况下,proxysql能够在几毫秒内重新启动,因此其他监视工具可能无法检测到正常故障。
4. errorlog(2.0.0中的新增内容):
如果设置,ProxySQL将使用定义的文件作为错误日志。 如果未传递此类变量,则errolog将位于datadir / proxysql.log中
初始化启动过程(或--initial)
重新加载启动(或--reload)
如果使用--reload标志执行proxysql,它会尝试将配置文件中的配置与数据库文件的内容合并。 之后,ProxySQL将继续启动程序。
如果配置文件和数据库文件的参数存在冲突,则无法保证ProxySQL将成功管理合并,用户应始终验证合并结果是否符合预期。
核心配置表
mysql> show tables;
+-------------------+
| tables |
+-------------------+
| mysql_servers |
| mysql_users |
| mysql_query_rules |
| global_variables |
| mysql_collations |
| debug_levels |
+-------------------+
每个这样的表都有明确的定义:
mysql_servers: 包含要连接的ProxySQL的后端服务器列表
mysql_users: 包含ProxySQL将用于向后端服务器进行身份验证的用户列表
mysql_query_rules: 包含用于缓存,路由或重写发送到ProxySQL的SQL查询的规则
global_variables: 包含在服务器初始配置期间定义的MySQL变量和管理变量
debug_levels: 仅用于调试ProxySQL的手动构建
在不同层级间移动配置信息
要重新配置MySQL用户,请执行以下命令之一:
[1] LOAD MYSQL USERS FROM MEMORY / LOAD MYSQL USERS TO RUNTIME
将MySQL用户从MEMORY加载到RUNTIME数据结构,反之亦然
[2] SAVE MYSQL USERS TO MEMORY / SAVE MYSQL USERS FROM RUNTIME
将MySQL用户从RUNTIME保存到MEMORY
[3] LOAD MYSQL USERS TO MEMORY / LOAD MYSQL USERS FROM DISK
将持久化的MySQL用户从磁盘数据库加载到MEMORY
[4] SAVE MYSQL USERS FROM MEMORY / SAVE MYSQL USERS TO DISK
将MySQL用户从MEMORY中保存到DISK
[5] LOAD MYSQL USERS FROM CONFIG
从配置文件加载用户到MEMORY
常用的命令参考:
LOAD MYSQL USERS TO RUNTIME;
SAVE MYSQL USERS TO DISK; LOAD MYSQL SERVERS TO RUNTIME;
SAVE MYSQL SERVERS TO DISK; LOAD MYSQL QUERY RULES TO RUNTIME;
SAVE MYSQL QUERY RULES TO DISK; LOAD MYSQL VARIABLES TO RUNTIME;
SAVE MYSQL VARIABLES TO DISK; LOAD ADMIN VARIABLES TO RUNTIME;
SAVE ADMIN VARIABLES TO DISK; 注意:关键字MEMORY/RUNTIME 都支持缩写:
MEM for MEMORY
RUN for RUNTIME
故障排除
常用的一些命令技巧
1. 限制ProxySQL到后端MySQL的连接数通过权重,来控制ProxySQL到后端MySQL的访问量

2. 自动回避复制延迟较大的节点

3. Master Slave,将Master作为Slave的备用读节点
注意:max_replication_lag仅适用于从节点。 如果服务器未启用复制,则Monitor不会执行任何操作。


4. 优雅的禁用后端Server

5. 立即禁用后端Server


6. 重新启用脱机/禁用后端Server


7. 删除后端Server

8. 将明文密码转换成Hash密码,配置到ProxySQL中的mysql_users表


9. 限制User和ProxySQL之间的连接数
10. 同个事务内的SQL,禁止被路由到不同节点上

MySQL-ProxySQL中间件(一)| ProxySQL基本概念的更多相关文章
- MySQL中间件之ProxySQL(1):简介和安装
返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html 1.ProxySQL简介 之前的文章里,介绍了一个MySQL的中间件: ...
- MySQL中间件之ProxySQL(13):ProxySQL集群
返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html ProxySQL有原生的集群功能,但是这个原生的集群功能还正在试验阶段 ...
- MySQL中间件之ProxySQL(2):初试读写分离
返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html 1.实现一个简单的读写分离 这里通过一个简单的示例实现ProxySQL ...
- MySQL中间件之ProxySQL(3):Admin管理接口
返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html 1.ProxySQL的Admin管理接口 当ProxySQL启动后,将 ...
- MySQL中间件之ProxySQL(4):多层配置系统
返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html 1.ProxySQL中的库 使用ProxySQL的Admin管理接口连 ...
- MySQL中间件之ProxySQL(5):线程、线程池、连接池
返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html 1.ProxySQL的线程 ProxySQL由多个模块组成,是一个多线 ...
- MySQL中间件之ProxySQL(6):管理后端节点
返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html 1.配置后端节点前的说明 为了让ProxySQL能够找到后端的MySQ ...
- MySQL中间件之ProxySQL(7):详述ProxySQL的路由规则
返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html 1.关于ProxySQL路由的简述 当ProxySQL收到前端app发 ...
- MySQL中间件之ProxySQL(14):ProxySQL+PXC
返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html 1.ProxySQL+PXC 本文演示ProxySQL代理PXC(Pe ...
- MySQL架构之 主从+ProxySQL实现读写分离
准备服务器: docker run -d --privileged -v `pwd`/mysql_data:/data -p 3001:3306 --name mysql5-master --host ...
随机推荐
- Python反射、异常处理
反射 :字符串到对象属性的映射 hasattr(obj,string), 判断对象obj里面是否有叫string的字段或方法 getattr(obj,string) 获取obj对象里名叫string的 ...
- vim基础(二)
上一篇提到了插入与删除.定位.复制与粘贴以及退出与保存几项基本操作,这篇继续整理其他常用命令. 撤销与替换 首先是我们在输入过程中不小心打错了,或者误删了,怎么恢复?在word里我们有ctrl+Z,v ...
- 关于markdown(typora)的操作指南,以及导出为word格式文件插件(pandoc-2.6-windows-x86_64)的下载
Markdown简介 插件链接文章结尾处 目录 Markdown简介1. Markdown是什么?2. 谁创造了它?3. 为什么要使用它?4. 怎么使用?4.1 标题4.2 段落4.3 区块引用4.4 ...
- 【Codeforces 490C】Hacking Cypher
[链接] 我是链接,点我呀:) [题意] 让你把一个字符串分成左右两个部分 形成两个正数 使得这两个正数一个能被a整除,一个能被b整除 找到任意一个解就可以 [题解] 枚举分割的断点i 枚举的时候用同 ...
- 模拟退火算fa
转载:http://www.cnblogs.com/heaad/archive/2010/12/20/1911614.html 优化算法入门系列文章目录(更新中): 1. 模拟退火算法 2. 遗传算法 ...
- 【ZJOI2017 Round2练习&BZOJ4826】D1T2 sf(主席树,单调栈)
题意: 思路:From http://blog.csdn.net/neither_nor/article/details/70211150 对每个点i,单调栈求出左边和右边第一个大于i的位置,记为l[ ...
- codevs2370 小机房的树
题目描述 Description 小机房有棵焕狗种的树,树上有N个节点,节点标号为0到N-1,有两只虫子名叫飘狗和大吉狗,分居在两个不同的节点上.有一天,他们想爬到一个节点上去搞基,但是作为两只虫子, ...
- 微信小程序初探(二):阅读官方demo源码
阅读demo有助于理解逻辑,而且demo源码中应该包含了框架开发人员想要表达的意思的精华,先从app.js着手来阅读. 附带贴下说明: https://mp.weixin.qq.com/debug/w ...
- 1.4-动态路由协议OSPF⑤
OSPF的特殊区域(Stub/total Stub区域,无法引入外部路由): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 第一种 ...
- android_handler(一)
仅仅是一个简单的handler的样例,目的就是对handler有一个初步的接触. 在layout上加入一个button,点击按钮,然后打印出利用handler传送的数据.(都是执行在mainthrea ...