暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

编写MySQL Shell插件(REPORT)

原创 马van 2020-04-16
1175

MySQL Shell是一个功能强大的工具。它允许Javascript,Python和SQL访问MySQL。

可以使用MySQL Shell
1.作为MySQL Server的管理工具
2.作为运行Javascript或Python或SQL的脚本引擎,以访问MySQL Server
3.作为允许通过MySQL Server
4 访问文档存储(如集合API)的工具。由于MySQL InnoDB Cluster管理工具

自定义和可扩展框架对于工具至关重要,因为此类数据库管理员可以创建自定义的报告和扩展来执行日常工作。

编写本教程的目的是提供一个简短摘要,介绍如何使用Python创建MySQL Shell报告。

什么是MySQL Shell报表?

MySQL Shell报表可以通过“ \ show”执行

image.png

MySQL Shell附带3个“报告”,即“查询”,“线程”,“线程”。

查询报告:
通过报告获取“帮助”可以简单地运行“ \ show query --help”

image.png

通过连接的会话运行报告,这样查询将被执行并打印在屏幕上(例如,运行“ SELECT 1”查询)

image.png

使用Python创建新报告-数据库大小

MySQL Shell允许基于$ HOME / .mysqlsh / plugins /文件夹进行自定义

启动MySQL Shell时,它将在“ plugins”中查找所有初始化脚本(init.py / init.js)。 ”文件夹。

文件:$ HOME / .mysqlsh / plugins / ext / dbutil / init.py

#函数定义如下:show_dbsize(3个参数)
def show_dbsize(会话,参数,选项):
  query =“ SELECT table_schema AS'Database',ROUND(SUM(data_length + index_length)/ 1024/1024,2)AS 'Size(MB)',count(table_name)as'tables of table'from information_schema.TABLES GROUP BY table_schema“

  if(options.has_key('limit')):
    query + ='limit'+ str(options ['limit '])

  结果= session.run_sql(query);


  report = []
  if(result.has_data()):
    report = [result.get_column_names()]
    for result.fetch_all()中的行:
        report.append(list(row))

  return {“ report”:



shell.register_report(“ dbsize”,“ list”,show_dbsize,
        {
        “ brief”:“列出没有主键的表。”,
        “详细信息”:['您需要对INFORMATION_SCHEMA.TABLES和INFORMATION_SCHEMA.STATISTICS拥有SELECT特权。 '],
        'options':[
            {
                'name':'limit',
                'brief':'要返回的最大行数。',
                'shortcut':'l',
                'type':'integer'
            }
        ],
        'argc':'0'
    }
)

在$ HOME / .mysqlsh / plugins / ext / dbutil / init.py下创建文件后,MySQL Shell将查找NEW报告,而“ \ show”将显示添加的“ dbsize”报告。

image.png

使用CONNECTED会话,然后运行报告可以简单地执行“ \ show dbsize”

image.png

我们在Python init.py中放入了OPTION“ limit”。要仅显示3行,可以如下所示添加选项(-l 3)。

image.png

享受阅读!

原文链接:http://mysqlhk.blogspot.com/2020/04/writing-mysql-shell-plugin-report.html

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论