以json格式输出数据库大小(来自Centos7的Mariadb)

时间:2017-05-24 03:23:55

标签: mysql json linux bash shell

任何人都知道如何以json格式输出这些数据 Full output using mysql command 。我不知道如何逐一获取它们。使用Bash脚本。提前感谢你:))

基本上,脚本需要计算每个客户端/ dbname每GB的数据库大小。然后以json格式发送。

示例输出:

{
    "client_code": "information_schema",
    "key": "disk_usage",
    "value": "0.000069"
  },
  {
    "client_code": "mysql",
    "key": "disk_usage",
    "value": "0.000611"
  },
  {
    "client_code": "newdb",
    "key": "disk_usage",
    "value": "1GB"
  }
]

2 个答案:

答案 0 :(得分:1)

您需要将--json传递给mysql命令行查询以获取JSON格式的输出。有关此here

的更多信息

select table_schema, sum((data_length+index_length)/1024/1024) AS MB from information_schema.tables group by 1; | mysqlsh --json=pretty --sqlc --uri root@192.168.1.141:3306

编辑:

虽然在MySQL或MariaDB中还没有直接JSON输出而没有第三方应用程序。也就是说,找到了一个有趣的帖子,将普通的原子表转换为BLOB表并用column_json()函数解析它。您可以找到here,如果您使用CONNECT数据伪造,那么您可能会发现this文章有用。

答案 1 :(得分:0)

我已经找到了一个解决方案,我做的是我内部加入两个数据库以便我可以获取值,而对于json输出我使用工具csvtojson。