Mysql忽略文件名的安全编码
author:skate
time:2014/09/28
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_2881064151`;
前缀”#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忽略文件名的安全编码的更多相关文章
- PDO创建mysql数据库并指定utf8编码
<?php //PDO创建mysql数据库并指定utf8编码 header('Content-type:text/html; charset=utf-8'); $servername = &qu ...
- MySQL查看和修改字符编码
MySQL的默认编码是Latin1,不支持中文,要支持中午需要把数据库的默认编码修改为gbk或者utf8. 1.需要以root用户身份登陆才可以查看数据库编码方式(以root用户身份登陆的命令为:&g ...
- mysql与服务器之间的编码问题
1.之前在练习一个java web的项目时,mysql的编码设置正确,服务器的编码也设置正确,但向mysql中存储数据时,就会出现乱码问题,后来发现是mysql与服务器之间的编码设置问题,以下是mys ...
- Docker安装MySQL忽略大小写问题的问题
原文:Docker安装MySQL忽略大小写问题的问题 连接MySQL: 查看当前mysql的大小写敏感配置show global variables like '%lower_case%';+---- ...
- MySQL对JSON类型UTF-8编码导致中文乱码探讨
前言 继上文发表之后,结合评论意见并亲自验证最终发现是编码的问题,但是对于字符编码还是有点不解,于是乎,有了本文,我们来学习字符编码,在学习的过程中,我发现对于MySQL中JSON类型的编码导致数据中 ...
- mysql 5.5 修改字符编码
修改/etc/mysql/my.cnf 配置文件: 最后重启mysql 服务,再查看: 编码已经改好了,可以支持中文字符编码了.
- mysql命令行修改字符编码
1.修改数据库字符编码 mysql> alter database mydb character set utf8 ; 2.创建数据库时,指定数据库的字符编码 mysql> create ...
- MySql数据库SQL语句将编码
-- 查看所有字符编码 SHOW CHARACTER SET; -- 查看创建数据库的指令并查看数据库使用的编码 show create database dbtest; -- 查看数据库编码: sh ...
- 在MAC下配置MySQL 5.7 数据库的编码问题
1.MySQL 5.7 for MAC 默认没有my.cnf文件 ,首先 新建my.cnf文件: 2.在my.cnf文件追加 [mysqld] character-set-server=utf8mb4 ...
随机推荐
- PHP入门 - - 06-->HTML的表格标签
表格标签<table> <table>的属性: Align: left, center, right (表格的)位置 Border: ...
- hdu5119 dp
题目链接: http://acm.split.hdu.edu.cn/showproblem.php?pid=5119 题意: 输入T组数据,每组数据包括两个数n和m,接下来n个数,这n个数可以随意取( ...
- 彻底搞懂Html5本地存储技术(一)
一.H5之前客户端本地存储的实现 1. cookies cookies的应用比较广泛,但有以下几个问题: (1)每次http请求头上会带着,浪费资源 (2)每个域名客户端只能存储4K大小 (3)会造成 ...
- POJ3680 Intervals(最小费用最大流)
选择若干条线段使权值最大,并且点覆盖次数不超过k. 建图如下:vs到0建立容量为k费用为0的边:坐标终点到vt连接一条容量为k费用为0的边:对于每两个相邻坐标连接一条容量为INF费用为0的边:对于线段 ...
- EF框架step by step(6)—处理实体complex属性
上一篇的中介绍过了对于EF4.1框架中,实体的简单属性的处理 这一篇介绍一下Code First方法中,实体Complex属性的处理.Complex属性是将一个对象做为另一个对象的属性.映射到数据库中 ...
- 通过反射将变量值转为变量名本身ZZ
这是.NET反射的一个有趣小例子: 通过反射将变量值转为变量名本身. 当然要先添加命名空间:using System.Reflection; 示例代码如下: class Program { st ...
- 2014-2015 ACM-ICPC, NEERC, Moscow Subregional Contest E. Equal Digits
E. Equal Digits time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- ccc 音乐播放
cc.Class({ extends: cc.Component, properties: { musicPlayer: { default: null, type: cc.AudioSource } ...
- HDU5331 : Simple Problem
因为是二分图,所以最大独立集$=$总点数$-$最大匹配. 因为是树,所以具有贪心性质,设$f_i$表示$i$是否与其孩子匹配,$a_i$表示$i$的孩子里$f$为$0$的个数,则$f_i=[a_i&g ...
- 福建红色文化VR/AR实体体验馆正式启用
(12月13日),福建红色文化网上展示馆上线暨福建红色文化VR/AR实体体验馆启动仪式在福建省革命历史纪念馆举行.省委常委.宣传部长高翔出席仪式并宣布启动上线. 福建红色文化网上展示馆和VR/AR实体 ...