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