How to recover a MySQL InnoDB table?
- by Kau-Boy
When I try to launch the Plesk administration page of you server I get the following error:
ERROR: PleskMainDBException
MySQL query failed: MySQL server has gone away
The MySQL Server is working well. Although it seems that the plesk database is somehow corrupt and any action on this database results in a restart of the mysql process, so even queries to other databases on the same MySQL server will be lost.
If I try to connect to the plesk database using phpMyAdmin, I can only see the number of tables, the database had originally. But I am not able to open the tables listing. As soon as I try it, the mysql process crashes again.
Trying to connect to the database using ssh works. I can even run a SELECT statement against any table an get a result.
I don't know if it is an plesk error or an error of the psa database or even the MySQL server. Can you give me any tips on how to recover the plesk system. Should I try to repair the Plesk installation before. And if so, how can I do it and will all my settings get lost doing it?
EDIT:
Trying to dump the database, I get the following error:
mysqldump: Got error: 2013: Lost connection to MySQL server during query when using LOCK TABLES
EDIT:
I could find out, that the table 'data_bases' is responsible for the crash of the MySQL server process. But trying to repair it using a REPAIR TABLE statement doesn't work.
EDIT:
I now dropped the whole database and restored it from a dump. But why I try to recover the data_bases table I get the following error:
ERROR 1005 (HY000) at line 24: Can't create table './psa/data_bases.frm' (errno: 121)
I am not able to create the table again. Somewhere in the MySQL system there is still some information about this table. I tested the same thing locally. If I just delete the table files and then try to create the table again I get the same error. If I drop the table through MySQL, I can create the table again afterwards. But trying to drop the table using MySQL the whole MySQL system crashed. Is there any way to solve that issue?