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. Linux socket网络编程基础 tcp和udp

    Socket TCP网络通信编程 首先,服务器端需要做以下准备工作: (1)调用socket()函数.建立socket对象,指定通信协议. (2)调用bind()函数.将创建的socket对象与当前主 ...

  2. 我的Java设计模式-原型模式

    "不好意思,我是卧底!哇哈哈哈~"额......自从写了上一篇的观察者模式,就一直沉浸在这个角色当中,无法自拨.昨晚在看<使徒行者2>,有一集说到啊炮仗哥印钞票,我去, ...

  3. 针对特定XML的解析器XMLParser

    一.建立网页库和偏移文件 为文本搜索引擎建立网页库,首先要把所有的网页(这里是文章)格式化,并保存到指定的格式中.如以下格式:   |                                  ...

  4. ubuntu 下命令行播放器mplayer 使用详解

    ubuntu 下命令行播放器mplayer 使用详解 2011-01-02 21:00:42|  分类: Linux/Unix |  标签: |字号大中小 订阅 使用 MPlayer 播放媒体文件最简 ...

  5. Win7/8出现An error occurred on the server when processing the URL解决办法

    使用的是win8系统搭建的本地服务器,win7使用的方法是相同的.如果你的系统是精简版的Win7/8,那么安装IIS7也有可能出现这问题.下面SJY带领大家来解决这个错误. 解决方法 打开控制面板→管 ...

  6. 【linux】启动apache遇到错误:httpd: Could not reliably determine the server's fully qualified domain name

    1)进入apache的安装目录:(视个人安装情况而不同) [root@server ~]# cd /usr/local/apache/conf 2)编辑httpd.conf文件,搜索"#Se ...

  7. R语言之内存管理

    转载于:http://blog.csdn.net/hubifeng/article/details/41113789 在处理大型数据过程中,R语言的内存管理就显得十分重要,以下介绍几种常用的处理方法. ...

  8. Java之List排序

    1.Java封装类 Student.java: /** * @Title:Student.java * @Package:com.you.data * @Description: * @Author: ...

  9. 求sum=1+111+1111+........+1....111 .

    1,思路 大数相加,若直接使用int,或者long都会超出长度,因此考虑使用String存储. 2,代码 public class LargeNumAdd { public static void m ...

  10. WebService之CXF注解之五(配置文件)

    1.web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version=" ...