我重新格式化了我的电脑,并重新安装了我的xampp安装,但从未覆盖mysql文件夹(在xampp安装选项),并没有备份我的数据库表,认为这是安全的! (我在想什么?)
现在,Myphpmyadmin显示有存在的表-mydatabase(294)! 但是当点击显示mydatabase(0)表 – 没有发现表! 运行我的drupal站点给了我:
DOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mydrupaldatabase.semaphore' doesn't exist: SELECT expire, value FROM {semaphore} WHERE name = :name; Array ( [:name] => variable_init ) in lock_may_be_available() (line 167 of F:\xampp\htdocs\mydrupalsite\includes\lock.inc)....
在我的MySQL /数据/ mydrupaldatabase /文件夹里面我可以看到有所有* .frm文件为我的数据库。 但是我不确定这些是否是实际的数据,因为只有大约2mb的值,实际上我记得应该有大约4MB的数据。
我强烈地认为我的数据仍然存在,但phpmyadmin可能只是混淆了如何恢复它。
任何帮助非常感谢!
首先,使用以下命令validation您的数据块是否正确:
SHOW VARIABLES LIKE 'datadir';
这应该给你一个目录,其中包含更多的基于数据库名称的目录。 在其中每一个,你应该看到三种types的文件:
.frm包含表定义,但没有实际的数据。 .myd包含原始表格数据。 (MyISAM的) .myi包含您定义的任何表索引。 (MyISAM的) .ibd包含组合格式的索引和数据。 (InnoDB的) 这是棘手的地方。 InnoDB(你提到的int中他所说的就是你所使用的)具有表空间的概念,就像Oracle一样。 也就是说,如果您已将其configuration为执行,则会将系统上的文件分隔到不同的命名空间中; 否则,它将所有内容存储在系统表空间中 。 它通常在名为ibdata#的文件中,其中编号可以更改。 如果这消失了,那么你的数据就消失了。 很有可能你重新安装MySQL备份了这个文件,并把它放在标准的系统文件中 – 但是你需要看看。
为了将来的参考,您可以在每个文件的基础上创build这些文件,通过使用innodb_file_per_tableconfiguration选项,您可以将表空间分隔成不同的文件。