Skip to content
bash
统计 表占据的空间

SELECT TABLE_SCHEMA, ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2)
FROM
    INFORMATION_SCHEMA.TABLES
  WHERE TABLE_SCHEMA='test'

数据恢复

mysql 5.7
通过dbsake

dbsake frmdump   frm文件路径 > db.sql

导出表结构文件

通过ibd文件进行恢复
1, 在目标数据库执行建表语句
脱离表空间  sys_user  表名
2,alter table   sys_user  表名 discard tablespace;

3,  把ibd文件放入  服务器指定数据目录下
如果是linux系统 注意权限
chown -R mysql:mysql ./ry
--  最后一步 执行命令后查询表数据是否导入
 4. alter table sys_user import tablespace;
5.--  通过 ibd 文件 获取 表结构信息
 ibd2sdi  -d sys_user /var/lib/mysql/ry/sys_user.ibd

通过 binlog 恢复 mysql数据

sh
 ##   将 binlog 解析为可识别的文本 
 mysqlbinlog /var/log/mysql/mysql-bin.000001 -vv > back.sql
 ## 找到 删除操作的语句  找到 binlog的position
 ## 执行如下命令  做数据恢复
 mysqlbinlog /var/log/mysql/mysql-bin.000001 --start-position=525 --stop-position=661|mysql -uroot -p