今天在navicat上操作mysql数据库表,突然没有响应了。随后重启,mysql服务也终止了。随后启动服务,检查表,发现一张表卡没了,就重新添加一张表。报了一个错:
Error : Tablespace for table ‘`database`.`temp`‘ exists. Please DISCARD the tablespace before IMPORT.
可是show databases看了一下根本就没有这张表啊。网上查了半天都没有找到类似的情况,花了好几个小时。
最后终于找到解决办法如下:
1、关闭所有mysql操作,停止mysql服务。
2、找到安装目录下的数据库文件,应该在你安装目录下的data文件夹下,然后打开你对应的数据库名的文件夹。找到那个表对应的文件,还有损坏的文件,一并删除。
数据库中的文件名,应该是和你的表名一一对应的,一个表,两个文件,一个数据文件,一个是日志文件,除了这个还有一个“db.opt”文件不要删除。其他的乱码的文件,和原来你出错的文件全部删除。
3、完了以后重新启动mysql服务,重新添加那个同样名字的表就可以添加成功了。