I have a big problem. There is one server with CRM database. I corrupted it probably and don't know what to do.

ls /var/lib/mysql/sugarcrm/
accounts_audit.frm      address_book.ibd     contacts_audit.frm           emails_email_addr_rel.ibd   mkt_marketiery_accounts_c.frm     pm_processmanagerstagetask.frm     quotes.frm              uni_webinars.frm
accounts_audit.ibd      bugs_audit.frm

And etc. When I try to watch or make changes I receive

mysql> select * from vcals limit 1;
ERROR 1146 (42S02): Table 'sugarcrm.vcals' doesn't exist


130515 11:34:02130515 11:34:02 [ERROR] Cannot find table sugarcrm/vcals 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? See http://dev.mysql.com/doc/refman/5.0/en/innodb-troubleshooting.html how you can resolve the problem.

Problem is that I haven't .ibd files, .frm only. Also I haven't full backup .sql file of DB. Now I imported .sql from 9 May date which is so long ago. :( I know .frm doesn't contents data, structure only.

Question is: can I repair somehow or this copy of DB is not repairable? In general, what ways can be use to repair DB if I would have .ibd files? In my case 9 May backup is the best variant I suppose. I have no exit, isn't it?



First of all If files doesn't exist check system logs for filesystem/disk errors, as it's very strange case.

After that check filesystem (stop mysql, umount and fsck -f) an see if are there errors and fsck is able to repair them.

If these steps doesn't solve your problem, you can check the binary log files, maybe it's older than may 9 and you can restore backcup an binary log after that.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.