mysql获取元数据信息 - 用户创建,用户查询,用户组和数据库大小

时间:2016-05-30 01:01:24

标签: mysql sql mysql-workbench

我正在使用mysql workbench来运行我的查询以与mysql交互。我查看了“%AppData%\ MySQL \ Workbench \”文件夹,发现了一些日志文件,其中包含有关mysql元数据的信息。

我找不到包含用户创建日志的任何日志文件。我找到了两个与查询日志相关的文件。一个是在sql_history / date文件中。这包含与时间戳一起发出的查询,但不包含用户信息。第二个文件是log / sql_actions_unconnected.log。这也没有用户信息。

这是我的要求 -
1.上周,上个月,上个季度增加的用户数量 2.他们解雇的#个查询的前10位用户是什么? 3.每组#users的前3个用户组是什么? 4.什么是数据库 - 按GB的最高到最低顺序排名前3位

除了依赖日志文件之外,还有其他方法可以完成上述任务吗?如果不是如何根据日志文件获取上述信息。

1 个答案:

答案 0 :(得分:0)

  1. 上周,上个月,上个季度添加了哪些用户
  2. 默认情况下,这不会被记录,您需要创建自己的机制。最干净的方式是审计插件。见https://dev.mysql.com/doc/refman/5.7/en/writing-audit-plugins.html

    1. 他们触发的#个查询的前10位用户是什么
    2. 这可以从sys架构中查询,如下所示:

      SELECT * FROM sys.user_summary ORDER BY statements DESC LIMIT 10;
      

      MySQL 5.7提供sys架构。对于MySQL 5.6,它可以在performance_schema之上手动安装。 见https://dev.mysql.com/doc/refman/5.7/en/sys-schema.htmlhttps://github.com/mysql/mysql-sys

      1. 每个组#users排名前3的用户组
      2. 不知道你想要什么

        1. 什么是数据库 - 按GB的最高到最低顺序排名前3位
        2. 这可以在information_schema中找到,如下所示:

          SELECT TABLE_SCHEMA, SUM(DATA_LENGTH) data FROM information_schema.tables GROUP BY TABLE_SCHEMA ORDER BY data DESC LIMIT 10;
          

          但是请注意:这个值是部分猜测的。实际磁盘使用情况可能会有所不同,即池中已删除数据的碎片。 https://dev.mysql.com/doc/refman/5.7/en/tables-table.html

          上的文档