关于mysql文件的.frm文件的导入
前几天我的电脑由于装驱动突然崩溃了,于是就重做系统了。但万万没有想到我的mysql数据库没有导出,好在我的php环境没有装载C盘。由此忙乎了一下午才恢复了表数据结构,但数据始终还是没有恢复。
当重装完系统之后,又重新装了php的运行环境,我用的是wamp环境,首先我把原来的数据库文件夹复制到了新装的的数据库data文件夹下,于是打开phpmyadmin,看到基本数据表都运行正常,但用着用着才发现一个很重要的问题,我的user表不正常了,在插入数据时,所有记录都是空的。这让我很郁闷。于是我到phpmyadmin的sql与语句中去执行,提醒我插入成功,但是记录还是空的,这让我想起了重装系统的问题。于是上网查询,想起来了,我其他的表的是MyISAM引擎,而user表是InnoDB。很可能是这个原因导致的。好废话不多说,直接我的解决办法:
1、把原来的数据库文件夹复制到新的mysql的data的文件夹下。
2、打开phpmyadmin,可以看到原来的数据库,但是看不见InnoDB引擎的user表。查看data文件下有user.frm文件。(不知道什么原因,我不是专门搞数据库)
3、把user.frm文件复制出来一份,放到桌面。
4、然后把data下的user.frm文件删掉。(不删掉没法新建这个表)
5、在phpmyadmin下重新建立一个user表,字段随便取,我就建了一个id字段(没有字段建不了表)。
6、关闭mysql环境,到data文件夹下,把原来复制到桌面的user.frm文件覆盖新产生的user.frm。
7、重启mysql,可以看到原来的user表的结构又恢复了。但是数据没有了。(不知道为什么,我郁闷)。
到了这一步,我以为 万事大吉了,但问题又来了,这个表现在不能插入数据了。尝试很多遍,sql语句没有问题,插入的数据全是空的。
于是我
8、把这个数据库整个导出为sql文件。
9.将整个数据库删掉。
10、新建个数据库,重新导入那个sql文件,这回完全正常了。
我是做php开发的,不是专门搞数据库了,误打误撞把原来的user数据表表结构恢复了,但我不知道原理。终止恢复了数据表结构,但是数据是没有了。记录一下以为以后再出现这中情况好查看,如果有高人还有更好的办法请不忘赐教。本人QQ:123270073