一段时间前,我不得不重新安装MySQL,在此之前,我已经将/var/lib/mysql/mydatabase移到了另一个目录,以便能够在安装MySQL之后恢复它。安装MySQL后,我移回了这个目录。当我转到mysql控制台并使用
显示数据库;
它返回数据库列表,“mydatabase”也在列表中。当我切换到使用'mydatabase‘并使用
展示桌子;
它显示了表的列表,但是当我执行任何SELECT命令时,我得到了以下错误:
错误1146 (42S02):表'mydatabase.mytable1‘不存在
从一开始-仅仅备份/var/lib/mysql/< DATABASE_NAME >来恢复数据库数据就足够了吗?还是我遗漏了什么?如果是,那么我能用“表不存在”来解决这个问题吗?
MySQL版本为5.7,操作系统为Ubuntu16.04
发布于 2017-07-11 11:08:21
MySQL 5.7默认存储引擎是InnoDB。它将数据存储在ibdata、ib_logfile0和ib_logfile1中。如果没有备份这些文件,则无法恢复数据。
建议您不要移动数据库文件,而应该使用mysqldump实用程序。
最好是使用InnoDB每个表,它可以将InnoDB表存储在每个表的.ibd文件中。
https://stackoverflow.com/questions/45028785
复制相似问题