MySQL db исчез, как отследить, что произошло?

Два дня назад я установил почтовый скрипт 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 отсутствуют файлы .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.

Мой вопрос: есть ли какие-либо другие способы отследить эту ситуацию и найти причину того, что база данных просто исчезла?


person Ken Tang    schedule 26.11.2012    source источник


Ответы (1)


Файлы .myd и .myi существуют только для таблиц MyISAM.

Если вы следовали стандартной процедуре установки Roudcube (проверено в версии 0.8.4), таблицы были настроены на использование механизма хранения InnoDB.

Вы перепутали какой-либо файл под /var/lib/mysql/? По умолчанию таблицы InnoDB хранятся в одном файле, возможно, /var/lib/mysql/ibdata1 в вашем случае. Если нет, найдите директиву innodb_data_file_path в ваш файл конфигурации my.cnf.

person RandomSeed    schedule 28.11.2012
comment
Это была моя вина, Roundcube действительно использует innodb, и файл db должен находиться в /var/lib/mysql/, спасибо! - person Ken Tang; 29.12.2012