日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

saltstack mysql模块_SaltStack工具中MySQL的模块返回值问题解决

發(fā)布時間:2024/4/14 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 saltstack mysql模块_SaltStack工具中MySQL的模块返回值问题解决 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

由于管理系統(tǒng)中對mysql管理的開發(fā)中用到了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

觀察官方的和我測試的輸出顯示結(jié)果來看只有 SELECT 語句顯示了希望的結(jié)果。

那么我要顯示 explain的結(jié)果呢? 查看了好多遍官方的文檔也沒有頭緒,只好從源代碼入手了

首先找到這個相關(guān)的模塊--mysql

主要位置在 ?/usr/local/lib/python2.7/dist-packages/salt/modules/mysql.py

注意:有的系統(tǒng)是在?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"]

然后我們在來查看一下執(zhí)行結(jié)果的輸出:

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

和修改之前的輸出結(jié)果對比多了results 這一項。

本文轉(zhuǎn)自andylhz 51CTO博客,原文鏈接:http://blog.51cto.com/andylhz2009/1951339,如需轉(zhuǎn)載請自行聯(lián)系原作者

總結(jié)

以上是生活随笔為你收集整理的saltstack mysql模块_SaltStack工具中MySQL的模块返回值问题解决的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。