Mysql如何删除以“#sql-”开头的临时表

现象:在重建索引后,发现Mysql服务器的磁盘空间快满了

在用如下命令重建索引

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`;

mysql删除以什么开头的数据_Mysql如何删除以“#sql-”开头的临时表相关推荐

  1. 从mysql数据库中删除一行数据_mysql数据库删除一行数据

    [MySQL]命令行工具和基本操作 原文:[MySQL]命令行工具和基本操作 一 MySQL命令行工具  (查看帮助 ---help,或 -?) 1)MySQL MySQL是一个简单的SQL外壳(有G ...

  2. xampp mysql创建表_xampp怎样创建数据表和删除数据表 来学习吧

    xampp新建好数据库之后,怎样新建数据表呢?今天咪咪我就来讲解一下xampp中怎样创建数据表和删除数据表. 工具/材料 电脑 电脑 xampp 操作方法 01 如图,单击选中已经创建好的数据库. 0 ...

  3. mysql 以周为单位记录数据_mysql 按年度、季度、月度、周、日SQL统计查询

    创建Table CREATE TABLE `test` ( `cdate` datetime DEFAULT NULL, `id` int(11) DEFAULT NULL, `name` varch ...

  4. mysql在查询结果中添加数据_MySQL将查询结果插入到数据表中

    转自Mysql教程:http://www.baike369.com/content/?id=5582 MySQL将查询结果插入到数据表中 INSERT语句还可以将SELECT语句查询出来的数据插入到另 ...

  5. iphone照片永久删除怎么恢复_微信数据怎么永久删除不被恢复?只删除聊天记录没用,打开这里彻底删除!...

    微信数据怎么永久删除不被恢复?这个问题已经越来越让人头疼,似乎单纯的删掉与对方的对话框已经不能再让人放心,微信里有太多不想被人知道的隐私,不管是工作还是生活,学会彻底删除微信聊天记录,已经越来越重要. ...

  6. mysql中怎么删除表中的一列数据_mysql如何删除表中一行数据?

    mysql中使用DELETE语句删除表中一行数据,语句为"DELETE FROM 表名称 WHERE 列名称 = 值".删除所有行的语句为"DELETE FROM tab ...

  7. mysql批量删除5000条数据_mysql批量删除大量数据

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

  8. mysql表如何删除一条数据_mysql如何删除表中一行数据?

    mysql中使用DELETE语句删除表中一行数据,语句为"DELETE FROM 表名称 WHERE 列名称 = 值".删除所有行的语句为"DELETE FROM tab ...

  9. mysql如何删除数据_MySQL中删除数据的两种方法

    1. 在MySQL中有两种方法可以删除数据: 一种是delete语句,另一种是truncate table语句. delete语句可以通过where对要删除的记录进行选择,而使用truncate ta ...

最新文章

  1. Linux qgis 编译,QGIS简介与源代码编译
  2. ML近三年在CVPR比较流行被应用的技术有哪些?
  3. bootstrap 导航学习
  4. php递归面包屑,php可应用于面包屑导航的递归寻找家谱树实现方法
  5. 关于华科的计算系统结构专业
  6. 仿小黄车android定位,小黄车ofo是怎么实现自行车定位功能的?
  7. Mr.J--密码强度检测
  8. 从源码角度理解 FragmentTransaction实现
  9. 湖仓一体是否会掀起金融业的下一波数字浪潮?
  10. 从零基础入门Tensorflow2.0 ----八、39.1 gpu1
  11. Atitit fsm有限状态机概念与最佳实践 目录 1. 概念组成与原理成分 1 1.1. 1、状态机的要素 4个要素,即现态、条件、动作、次态 2 1.2. 状态表 2 2. 性状 2 2.1.
  12. HTML颜色代码大全
  13. Access2016删除主键列(图文操作)错误提示:若要删除主键,请在“设计”视图中打开该表并删除主键字段
  14. Oracle 实体用户授权及同步同义词
  15. 如何盘活客户资源,提升成单率?
  16. Bat 脚本学习 (基础篇)
  17. Android 9 ServerManger源码分析
  18. 最新易企秀 微场景制作源码 易企秀去版权源码 带几百套模板
  19. 第六期 自定义IP添加-PWM 基于ARTY A7的MicroBlaze系统搭建与应用
  20. 调用链监控:Dapper、Istio... etc.

热门文章

  1. VTK修炼之道37:图像平滑_高斯滤波器
  2. 如果已经知道某一CALL的具体作用,能否把后面所有相同的CALL都改成函数名形式?
  3. Makefile中的patsubst函数
  4. BugkuCTF-Misc:爆照(08067CTF)
  5. python爬取时怎么获取头部header
  6. Markdown语法入门
  7. Linux0.00 代码解析(二)
  8. PyTorch基础(三)-----神经网络包nn和优化器optim
  9. 操作系统(三十三)内存管理
  10. STM32开发 -- 状态机与状态切换逻辑