MySQL db已经消失了如何跟踪发生了什么?

时间:2012-11-26 06:47:41

标签: mysql database roundcube

两天前,我安装了RoundCube邮件脚本:

PHP

Name        : php
Arch        : x86_64
Version     : 5.3.18
Release     : 1.el6.remi

的MySQL

Name        : mysql
Arch        : x86_64
Version     : 5.5.28
Release     : 1.el6.remi

直到今天早上任何工作都很好,脚本指的是Round Cube数据库存在问题。我在看目录有多奇怪:

/var/lib/mysql/roundcubemail

只有frm文件,没有任何.myd或.myi

cache.frm
cache_index.frm
cache_messages.frm
cache_thread.frm
contactgroupmembers.frm
contactgroups.frm
contacts.frm
db.opt
dictionary.frm
identities.frm
searches.frm
session.frm
users.frm

我的服务器有12个数据库,现在只有Round Cube db缺少.myd .myi文件。重新安装这个脚本不是问题,但我很有兴趣弄清楚这个数据库发生了什么,并确保它不会再发生。

MySQL错误日志只有这些信息:

121117  7:38:06 [ERROR] Cannot find or open table roundcubemail/session from
the internal data dictionary of InnoDB though the .frm file for the
table exists. Maybe you have deleted and recreated InnoDB data
files but have forgotten to delete the corresponding .frm files
of InnoDB tables, or you have moved .frm files to another database?
or, the table contains indexes that this version of the engine
doesn't support.
See http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting.html
how you can resolve the problem.

我的问题是:有没有其他方法可以跟踪这种情况并找出数据库刚刚消失的原因?

1 个答案:

答案 0 :(得分:2)

只有MyISAM表存在

.myd.myi个文件。

如果您遵循标准的Roudcube安装程序(通过v0.8.4验证),则表格设置为使用InnoDB存储引擎。

您是否搞砸了/var/lib/mysql/下的任何文件?默认情况下,InnoDB表存储在一个文件中,可能是/var/lib/mysql/ibdata1。如果没有,请在my.cnf配置文件中查找innodb_data_file_path指令。