SaltStack工具中MySQL的模块返回值问题解决
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SaltStack工具中MySQL的模块返回值问题解决,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3102字,纯文字阅读大概需要5分钟。
内容图文
![SaltStack工具中MySQL的模块返回值问题解决](/upload/InfoBanner/zyjiaocheng/488/4ffb9180ee1a4d88bcb756341942888d.jpg)
由于管理系统中对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 这一项。
本文出自 “影子骑士” 博客,请务必保留此出处http://andylhz2009.blog.51cto.com/728703/1951339
SaltStack工具中MySQL的模块返回值问题解决
标签:mysql 管理系统 saltstack
本文系统来源:http://andylhz2009.blog.51cto.com/728703/1951339
内容总结
以上是互联网集市为您收集整理的SaltStack工具中MySQL的模块返回值问题解决全部内容,希望文章能够帮你解决SaltStack工具中MySQL的模块返回值问题解决所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。