mysql恢复数据库后, 提示表不存在的解决方法error: 1146: Table doesn't exist

*将data文件导入MySql数据库

记得在删除mysql时将安装目录下的data文件夹备份

在这里插入图片描述
如上图:
只要在Server data files的安装路径中找到data文件夹,将备份的data文件全部复制进去就可以了。
即:> 全部导入!

把.frm文件导进去。注意在data目录下也要加入ib_logfile0,ib_logfile1,ibdata1这几个文件。

如果还是不行就将自己设置的数据文件存放目录下的ibdata1文件也用备份的ibdata1文件替换掉就可以了,如下图配置的位置

亲测,,,,我安装时设置了一个文件夹存放,,在这一步解决了
在这里插入图片描述

以上基本就可以解决问题了
===============================================================================================================说明:

要不然在mysql里只能找到表名(其实一个.frm文件就是对应的数据库中的一个表。)

而不能对其进行操作。

比如你原来的mysql中有一些数据库了。可以先把原来的data改名字备份在同一目录下。(可能要改名字系统会提示有另一程序在使用这个文件,这个时候可以到控制面板的服务里面,把mysql的服务先关掉,等改完名字,把东西都导进去后再开服务)

然后另建一个data,把在里面建好数据库名把.frm导进去。

停止服务可以通过管理工具里面的服务来停,或者用cmd 打开dos界面输入net stop mysql,启动用net start mysql;

只要用旧的ibdata1覆盖原来的,再把相关的数据库copy过去,然后重新启动数据库, 就ok了,进入以后要是对表不能操作可能是数据表已经损坏了.
(如果不行报1146错 ,建议重启一下机器在看看)

发布了43 篇原创文章 · 获赞 2 · 访问量 978

猜你喜欢

转载自blog.csdn.net/study_azhuo/article/details/105657023