MySQL的奇怪的删表数据文件而表照样能打开

author:headsen  chen      2017-11-02   17:57:17

现象:删除一个正在运行的mysql数据库的表的数据文件:*.MYD,此时在数据库里仍然能查看到该表的数据,就算是运行 了flush  privileges 命令仍然能查看到该数据,一旦重启数据库,则该表的会报错。

mysql> select count(*) from c5;
+----------+
| count(*) |
+----------+
| 24576000 |
+----------+
1 row in set (0.00 sec)

[root@client db1]# rm -f c5.MYD
[root@client db1]# ls
c5.frm c5.MYI c6.frm c6.MYD c6.MYI d1.frm d1.MYD d1.MYI d4.frm d4.MYD d4.MYI db.opt

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select count(*) from c5;
+----------+
| count(*) |
+----------+
| 24576000 |
+----------+
1 row in set (0.00 sec)

[root@client db1]# service mysqld restart
停止 mysqld: [确定]
正在启动 mysqld: [确定]
[root@client db1]#

mysql> select count(*) from c5;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 2
Current database: db1

ERROR 29 (HY000): File './db1/c5.MYD' not found (Errcode: 2)
mysql>

总结:当有某个表的数据文件被删除时,这个时候不要轻易的重启数据库,有可能这时该表的数据仍然保存在内存里。直接运行:create  table  d5  select * from c5;这样来把 c5表里的数据拷贝出来,之后再重启库。

MySQL的奇怪的删表数据文件而表照样能打开的更多相关文章

  1. MySQL实例多库某张表数据文件损坏导致xxx库无法访问故障恢复

    一.问题发现 命令行进入数据库实例手动给某张表进行alter操作,发现如下报错. mysql> use xx_xxx; No connection. Trying to reconnect... ...

  2. MySQL用sql复制表数据到新表的方法

    用sqlyog无法直接复制出一个不同表名的表来,只能copy到其他库上同名的表. 在MySQL数据库中,应该如何用sql将表数据复制到新表中呢? 本人通过试验测试成功了,而且相当简单易懂,速度也非常快 ...

  3. oracle复制表数据,复制表结构

    1.不同用户之间的表数据复制 2.同用户表之间的数据复制 3.B.x中个别字段转移到B.y的相同字段 4.只复制表结构 加入了一个永远不可能成立的条件1=2,则此时表示的是只复制表结构,但是不复制表内 ...

  4. oracle 复制表数据,复制表结构

    1.不同用户之间的表数据复制 对于在一个数据库上的两个用户A和B,假如需要把A下表old的数据复制到B下的new,请使用权限足够的用户登入sqlplus:insert into B.new(selec ...

  5. ORACLE+PYTHON实战:复制A表数据到B表

    最近在学习python ,看到了pythod的oracle,不仅可以一次fetch多条,也可以一次insert多条,想写一个复制A表数据到B表的程序来看看实际效率能不能提高.写完发现,非常惊艳!效率提 ...

  6. sql的存储过程实例--动态根据表数据复制一个表的数据到另一个表

    动态根据表数据复制一个表的数据到另一个表 把track表的记录 根据mac_id后两位数字,复制到对应track_? 的表中 如:mac_id=12345678910,则后两位10 对应表为track ...

  7. MySQL-5.7设置InnoDB表数据文件存储位置

    1.表空间 Innodb存储引擎可将所有数据存放于ibdata*的共享表空间,也可将每张表存放于独立的.ibd文件的独立表空间. 共享表空间以及独立表空间都是针对数据的存储方式而言的. 共享表空间: ...

  8. 依靠MySQL(frm、MYD、MYI)数据文件恢复

    该方法并不是适用于所有MySQL数据库 此次恢复是朋友那边的数据查不了了,请求我支援,出于各种心理原因,我答应试试,于是就有了这篇文章和这次经历,废话不多说.... 物理条件:宿机是Ubuntu16. ...

  9. mysql复制表数据,多表数据复制到一张表

    对于mysql 复制表数据可以使用 insert into select 方式 示例: $sql="insert into icarzoo.provider(providerId,provi ...

随机推荐

  1. UVa 11988破损的键盘

    这题是很好的学习用数组实现链表的例子. 原题链接 UVa11988 题意 输入一段文本,字符'['表示Home键,']'表示End键.输出屏幕上面的结果. 思路 难点在于在字符串的头和尾插入字符,如果 ...

  2. UVA129

    坑点在于输出格式. 四个字母一个空格,行末没有空格,64个字母换行重新打印. AC代码 #include<cstdio> const int maxn=200; int cnt; int ...

  3. UVA 816 bfs

    算法入门经典上面的题.题目链接 uva816 大致题意 有一个最多包含9*9个交叉点的迷宫.输入起点.离开起点时的朝向和终点,求一条最短路(多解时任意输出一个即可).详细题意请看原题 思路 其实就是b ...

  4. CodeForces-740B Alyona and flowers

    题目要求选择一些花的集合,如果暴力去枚举每种选择方法明显是不行的.换种方式考虑:每一个集合都能为最后的答案做出要么正的.要么负的.要么0贡献,先把所有集合能做出的贡献预处理,然后从m个集合里面选择贡献 ...

  5. mac 系统安装 eclipse 方法

    经过好几天的折腾,终于在各种不靠谱的经验.说明的忽悠中把自己心爱的 mac 安装上了 eclipse,看到别人的不靠谱,我决定自己写一篇经验,为了大家能够不走我这么多的弯路,也为了自己将来可以回来看看 ...

  6. 【java学习笔记】Properties

    Properties:可以持久化的映射,规定键和值的类型是String. Properties对象必须放到.properties文件中,其中properties文件默认为西欧编码,也因此不存储中文. ...

  7. 类似fabric主机管理demo

    类似于fabric的主机管理系统 可以批量对主机进行操作 批量上传文件 批量下载文件 批量执行命令 demo代码 #!/usr/bin/env python # -*- coding:utf-8 -* ...

  8. 常用u-boot命令详解(全) 2

    (8) USB 操作指令 指令 功能 usb reset 初始化USB控制器 usb stop [f] 关闭USB控制器 usb tree 已连接的USB设备树 usb info [dev] 显示US ...

  9. 如何利用Plxmon工具进行在线烧录PCI卡的EEPROM

    PLXMON是PLX公司提供的用于在线烧录PCI卡的EEPROM的工具. 烧录EEPROM有两种方式,一是比较传统的方法,即采用烧录机进行烧录.采用这种方式时,在调试过程中EEPROM需采用插件式封装 ...

  10. 安装Apache提示APR not found的解决办法

    不知道为什么在安装apache2.2.22版本的时候没有任何问题,直接使用命令 ./configure --prefix=/home/www/www_test/software/apache-2.2. ...