saltstack mysql模块_SaltStack工具中MySQL的模块返回值问题解决
由于管理系统中对mysql管理的开发中用到了saltstack集成的mysql模块其中一个主要的功能是 mysql.query
官方文档中的两个示例:
salt.modules.mysql.query(database, query, **connection_args)
Run an arbitrary SQL query and return the results or the number of affected rows.
CLI Example:
salt '*' mysql.query mydb "UPDATE mytable set myfield=1 limit 1"
Return data:
{'query time': {'human': '39.0ms', 'raw': '0.03899'}, 'rows affected': 1L}
CLI Example:
salt '*' mysql.query mydb "SELECT id,name,cash from users limit 3"
Return data:
{'columns': ('id', 'name', 'cash'),
'query time': {'human': '1.0ms', 'raw': '0.001'},
'results': ((1L, 'User 1', Decimal('110.000000')),
(2L, 'User 2', Decimal('215.636756')),
(3L, 'User 3', Decimal('0.040000'))),
'rows returned': 3L}
我测试的一个示例:
salt www.pyadmin.com mysql.query salt "explain select * from salt_events"
www.pyadmin.com:
----------
query time:
----------
human:
14.0ms
raw:
0.01402
rows affected:
1
观察官方的和我测试的输出显示结果来看只有 SELECT 语句显示了希望的结果。
那么我要显示 explain的结果呢? 查看了好多遍官方的文档也没有头绪,只好从源代码入手了
首先找到这个相关的模块--mysql
主要位置在 /usr/local/lib/python2.7/dist-packages/salt/modules/mysql.py
注意:有的系统是在 site-packages 文件夹下
编辑这个文件找到如下位置:
ret = {}
ret['query time'] = {'human': elapsed_h, 'raw': str(round(elapsed, 5))}
select_keywords = ["SELECT", "SHOW", "DESC"]
select_query = False
for keyword in select_keywords:
if query.upper().strip().startswith(keyword):
select_query = True
break
if select_query:
ret['rows returned'] = affected
columns = ()
for column in cur.description:
columns += (column[0],)
ret['columns'] = columns
ret['results'] = results
return ret
else:
ret['rows affected'] = affected
return ret
在字典里面增加 “EXPLAIN” 这样一个元素
select_keywords = ["SELECT", "SHOW", "DESC", "EXPLAIN"]
然后我们在来查看一下执行结果的输出:
www.pyadmin.com:
----------
columns:
- id
- select_type
- table
- partitions
- type
- possible_keys
- key
- key_len
- ref
- rows
- filtered
- Extra
query time:
----------
human:
0.24s
raw:
0.23805
results:
|_
- 1
- SIMPLE
- salt_events
- None
- ALL
- None
- None
- None
- None
- 3707
- 100.00
- None
rows returned:
1
和修改之前的输出结果对比多了results 这一项。
本文转自andylhz 51CTO博客,原文链接:http://blog.51cto.com/andylhz2009/1951339,如需转载请自行联系原作者
saltstack mysql模块_SaltStack工具中MySQL的模块返回值问题解决相关推荐
- vscode+phpstudy连接使用mysql(解决phpstudy中mysql无法启动的问题)
vscode+phpstudy连接使用mysql(解决phpstudy中mysql无法启动的问题) 使用vscode+phpstudy配置php开发环境网上很文章都是挺好的,都成功解决了我的问题.但是 ...
- MySQL抓包工具:MySQL Sniffer【转】
本文来自:https://github.com/Qihoo360/mysql-sniffer 简介 MySQL Sniffer 是一个基于 MySQL 协议的抓包工具,实时抓取 MySQLServer ...
- C++中函数模板的返回值是模板类型参数的调用方法
1 函数模板 模板定义以关键字template开始,后接模板形参表,模板形参表是用尖括号扩住的一个或多个模板形参的列表,形参之间以逗号分隔.关于函数模板的详细介绍,请参考<C++中模板函数及模板 ...
- linux中popen汉字乱码,Python中使用subprocess.Popen返回值乱码解决方案
Python中使用subprocess.Popen返回值乱码解决方案 问题描述 在python 2.7中,使用subprocess.Popen()调用*nix命令,并通过管道,获取其输出,并将其返回值 ...
- python中os.system.获取输出信息_python中os.system()的返回值
[python中os.system()的返回值] 如果第三方程序返回的是布尔型返回值,os.system会将true转为1,false转为0进行返回. 问题: /bin/xxx.py是一个返回码为1的 ...
- java分布式对象——远程方法中的参数和返回值+远程对象激活
[0]README 1)本文文字描述转自 core java volume 2, 旨在学习 java分布式对象--远程方法中的参数和返回值+远程对象激活 的相关知识: [1]远程方法中的参数和返回值 ...
- IXMLDOMDocument中的load方法返回值有BUG
IXMLDOMDocument中的load方法返回值是否有BUG IXMLDOMDocument中load一个xml文件时,返回值和msdn上说的不符 MSDN上说的是: Return Values ...
- Java面试题:IO流中read()方法为什么返回值是int
Question:IO流中read()方法为什么返回值是int? anwser:因为字节输入流可以操作任意类型的文件,比如图片音频等,这些文件底层都是以二进制形式的存储的,如果每次读取都返回byte, ...
- python中使用cv2.findContours返回值too many values to unpack (expected 2)错误如何解决
python中使用cv2.findContours返回值too many values to unpack (expected 2)错误如何解决 具体原因: opencv-python 版本还有一定关 ...
最新文章
- NoneBot2插件——打印系统状态
- springcloud 消息队列_全面而且简洁介绍SpringCloud微服务
- 详解DNS正向解析实验(有图有实验)
- 搜索 由浅入深 之一 水题
- appium+python自动化项目实战(一):引入nose和allure框架
- 4月1日,正式对全球科学界开放!
- Blazor服务器应用程序中使用EF Core的多租户
- 对2016年android就业的一些看法
- xp也可以将U盘格为NTFS
- Net系列框架-Dapper+AutoFac 基于接口
- 【重磅干货整理】机器学习(Machine Learning)与深度学习(Deep Learning)资料汇总
- 昆仑通态触摸屏保存历史曲线_昆仑通态TPC7062存盘时间计算
- crm系统哪家公司做的最好?企业如何选择crm供应商
- ae合成设置快捷键_AE软件中最常用快捷键大全(学AE必备)
- 无缝滚动加加暂停效果
- 入门编程(小白写代码的神器)
- 厉害了!北大3位硕博生搞出ChatGPT版Excel!动动嘴就能自动处理表格……免费用!...
- Greenplum 优化 - 分布式键,重建索引,序列
- 定时器输出的PWM频率范围及占空比精度
- openfeign的快速使用
热门文章
- 查找、移除某个视图上的某类控件
- BZOJ 1088: [SCOI2005]扫雷Mine( )
- VS2003转VS2010 fatal error C1189: #error
- ActionScript 3.0 概要
- 一个用于提取简体中文字符串中省,市和区并能够进行映射,检验和简单绘图的python模块...
- 解决IE8IE9 jquery ajaxj 跨域请求失败的问题。
- C#操作Excel的OLEDB方式与COM方式比较
- python中的property
- SpringBoot-AOP切面处理
- 每天学一点Scala之 高阶函数 flatten