[红队TIPS]查看数据库大小+Mysql备份大法
2022-8-5 11:21:53 Author: 白帽兔(查看原文) 阅读量:27 收藏

在获取了目标服务器权限之后,一般取证要拿到源码,还得要拿到数据库文件,这样可以在本地搭建相同的环境进行复现数据。难点,判断数据库和表的大小,以便进行选择性脱裤和打包。

一、查看数据库大小

根据数据库的大小来判断

常用命令

查看mysql默认密码

grep "password" /var/log/mysqld.log

查询所用数据库总大小

mysql> use information_schema; #进入到information_schema总裤下mysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES;

查看指定数据库每一个表容量大小

语句:select table_schema as '数据库', table_name as '表名',table_rows as '记录数',truncate(data_length/1024/1024, 2) as '数据容量(MB)',truncate(index_length/1024/1024, 2) as '索引容量(MB)' from information_schema.tables where table_schema='这里写裤的名称' order by data_length desc, index_length desc;例子:select table_schema as '数据库', table_name as '表名',table_rows as '记录数',truncate(data_length/1024/1024, 2) as '数据容量(MB)',truncate(index_length/1024/1024, 2) as '索引容量(MB)' from information_schema.tables where table_schema='mysql' order by data_length desc, index_length desc;


查看指定单个数据库容量大小

语句:select table_schema as '数据库', sum(table_rows) as '记录数', sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)', sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)' from information_schema.tables where table_schema='这里写数据库名';例如:select table_schema as '数据库', sum(table_rows) as '记录数', sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)', sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)' from information_schema.tables where table_schema='mysql';


查询每个裤总容量

select table_schema as '数据库', sum(table_rows) as '记录数',sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)',sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)' from information_schema.tables group by table_schema order by sum(data_length) desc, sum(index_length) desc;

二、脱裤备份

在知道了数据的容量表后,要选择性的进行打包和备份。

常用命令

查看mysql常用密码

grep "password" /var/log/mysqld.log

脱某个数据库  #不需要进入数据库

Linux语法:mysqldump -h主机名 -P 端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql 例子:mysqldump -h 192.168.10.25 -P 3306 -uroot -proot --database mysql >/data/backup/www.sql;
Windows语法:mysqldump -h1主机名 -p端口 -u用户名 -密码 库名 >文件名.sql例子:mysqldump -h127.0.0.1 -p3306 -uroot -proot mysql >111.sql

脱某个表和多个表

Windows 备份某个表 或者多个表语法:mysqldump -h1主机名 -p端口 -u用户名 -p密码 库名 表名 表名 >文件名.sql例子:mysqldump -h127.0.0.1 -p3306 -uroot -proot mysql t1 t2 >/data/backup/cmdb_t1_t2.sql

同时备份多个库

 格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --databases 数据库名1 数据库名2 数据库名3 > 文件名.sql 例如:mysqldump -h192.168.1.100 -uroot -ppassword --databases cmdb bbs blog > /data/backup 如果不行,试试不要--databases

备份数据库结构不备份数据

 格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --no-data 数据库名1 数据库名2 数据库名3 > 文件名.sql 例如:mysqldump --no-data –databases db1 db2 cmdb > /data/backup/structure.sql

文章来源: http://mp.weixin.qq.com/s?__biz=MzA4NzUzNzgyMw==&mid=2247485348&idx=1&sn=d17c0c85f30caa5cec48c330d0569565&chksm=9036a654a7412f42d357b9cc50e698d5021cf14a26000f1103010a0096a04059cb7c6da746ee#rd
如有侵权请联系:admin#unsafe.sh