author:skate

time:2014/09/28

Mysql怎样删除以“#sql-”开头的暂时表

现象:在重建索引后,发现Mysqlserver的磁盘空间快满了

在用例如以下命令重建索引

mysql> alter table skatetab add unique index(id, uid), drop primary key, add primary key(uid, id);

在重建索引的过程中,由于空间不足,导致Mysql server reboot,重新启动之后发现空间少了100G。于是查看是哪个文件夹占用了这100G,最后发如今数据文件夹里发现

非常多类似#sql-*.ibd暂时文件和同文件名称的#sql-*.frm。既然知道是暂时表了,那就删除吧,肯定不能直接通过rm删除了,由于在ibdata里保存字典信息和Undo信

息,数据库重新启动后会报错的。

删除的方法:

在alter table的过程中,假设Mysql突然crash了。就会在数据文件夹里存在一些中间表,这些中间表是以“#sql-”开头的暂时表,在你的数据文件夹里会看到

#sql-*.ibd和对应的 #sql-*.frm ,假设 #sql-*.ibd 和 #sql-*.frm两个文件都存在数据文件夹里的话,能够直接drop table。类似:

mysql> drop table `#mysql50##sql-928_76f7`;

前缀”#mysql50#“是让Mysql忽略文件名称的安全编码,这个前缀是在Mysql5.1引入的

由于我的数据文件夹里#sql-*.ibd 和 #sql-*.frm两个文件都存,所以直接drop就能够了。磁盘空间100多G也回收了,例如以下所看到的

mysql> drop table `#mysql50##sql-928_76f7`;

Query OK, 0 rows affected (16.28 sec)

说明:假设在数据文件夹里仅仅有#sql-*.ibd。而没有#sql-*.frm的话,就须要特殊处理

1.在还有一数据schema里创建一个和欲删除表一样的表结构(包含同样的列和索引)

mysql> create database test

mysql> create table test.tmp like  skatetab;       //仅仅复制表的结构和索引。不复制数据

2.把新创建的暂时表的.frm文件拷贝到欲删除的数据文件夹里。并改动和 ”#sql-*.ibd“一样的文件名称

shell> cp test/tmp.frm  #sql-928_76f7.frm

3.确认#sql-*.ibd 和 #sql-*.frm两个文件都存,然后直接drop,例如以下:

 

mysql> drop table `#mysql50##sql-928_76f7`;

參考:http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting-datadict.html

------end------

Mysql怎样删除以“#sql-”开头的暂时表的更多相关文章

  1. mysql定时删除6个月前的表

    查看定时是否开启: 查看event是否开启 : SHOW VARIABLES LIKE '%event_sche%'; 将事件计划开启 : ; 将事件计划关闭 : ; 代码: BEGIN -- 保存表 ...

  2. MySQL 如何删除有外键约束的表数据

    今天删除数据库中数据,提示因为设置了foreign key,无法修改删除 可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况. SET FOREIGN_KEY_CHECKS=0; 删除 ...

  3. Mysql批量删除和修改某个前缀的表

    1.批量删除某个前缀的表名,首先选出这些个表. select concat( 'drop table ', table_name, ';' ) from information_schema.tabl ...

  4. mysql进阶(十五) mysql批量删除大量数据

    mysql批量删除大量数据 假设有一个表(syslogs)有1000万条记录,需要在业务不停止的情况下删除其中statusid=1的所有记录,差不多有600万条, 直接执行 DELETE FROM s ...

  5. MySQL如何删除#sql开头的临时表

    1.  现象 巡检时发现服务器磁盘空间不足,通过查看大文件进行筛选是发现有几个#sql开头的文件,且存在超过100G及10G以上的文件. 2. 原因 如果MySQL在一个 ALTER TABLE操作( ...

  6. MYSQL删除以数字开头的字段

    例子: // 删除以0开头的字段 DELETE FROM `week_energy_copy` WHERE openid like '0%'; // 删除以数字开头的字段 DELETE FROM `w ...

  7. 增加删除字段修改字段名,修改表结构,非常用SQL语句技巧总结

    1.为数据表添加一个新字段 Alter TABLE [dbo].[CustomerBackupConfig] Add [Stamp] [timestamp] NULL GO 2.为数据表添加两个新字段 ...

  8. Mysql命令行导入sql数据

    mysqldump  是在  操作系统命令行下运行的,不是在 MySQL 命令行下运行的. 登陆数据库: 登陆本地mysql : mysql -h localhost -u root -p123456 ...

  9. 《[MySQL技术内幕:SQL编程》读书笔记

    <[MySQL技术内幕:SQL编程>读书笔记 2019年3月31日23:12:11 严禁转载!!! <MySQL技术内幕:SQL编程>这本书是我比较喜欢的一位国内作者姜承尧, ...

  10. 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效

    数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...

随机推荐

  1. 测试markdown语法

    测试使用markdown 这是无序列表 空调 洗衣机 电脑 这是有序列表 西瓜 哈密瓜 火龙果 下划线bingo 测试 斜体好丑 粗体很赞 测试插入代码 $(document).ready(funct ...

  2. hdu4709求三角形面积

    Herding Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  3. Windows Azure 数据安全(清理和泄漏)

    免责声明:本文档中所述过程为 2012 年 1 月时起的情况,如有变更,恕不另行通知. 希望将应用程序部署到 Windows Azure 的企业客户(实际上是所有客户)最为关心的就是其数据的安全性.释 ...

  4. dos批量替换当前目录后缀名

    有时候有些后缀名不满足条件,就需要进行批量的替换,如果人为的去替换,那么如果量少的话还好说,量多的话一个个去替换就太傻了,今天从网络上面查找了一些批量替换的dos命令,用起来还挺好用的,就直接把代码贴 ...

  5. Java中的throw和throws的差别

    Java中的throw和throws的差别 1.throwkeyword用于方法体内部.而throwskeyword用于方法体部的方法声明部分: 2.throw用来抛出一个Throwable类型的异常 ...

  6. [置顶] 单键模式的C++描述

    设计模式-单键(Signelton):其实单键的设计模式说来很简单,说的直白一点就是程序运行过程中保证只有一个实例在运行而已.在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例, ...

  7. C# - 重写虚方法

    项目目录: 创建教师类(Teacher),虚方法有Teach(); 创建学生类(Student),重写的方法是Teach(); 教师类: · 加上关键字 Virtual 就是声明可以重写此方法. us ...

  8. 一个关于native sql的程序

    *&---------------------------------------------------------------------* *& Report ZHR_BPM11 ...

  9. XP教育网用户免费上网

      本文针对 XP 教育网用户免费上网,其他系统未作测试.若有疑问百度空间留言 http://hi.baidu.com/itas109 http://blog.csdn.net/itas109 步骤 ...

  10. 自己写一个jqery的拖拽插件

    说实话,jQuery比原生的js好用多了,本来想用原生写的,也写出来的,仅仅是,感觉不像插件,所以用jQuery实现了一版. 实现的功能:能够指定拖拽的边界,在拖拽过程中,能够触发几个自己定义事件 先 ...