Как исправить крушение InnoDB для баз данных MySQL на Plesk для Linux? Print

  • plesk, linux, innoDB, базы данных
  • 82

Симптом:

 Ошибка отображается в Plesk: ERROR: PleskMainDBException
MySQL query failed: Incorrect information in file: './psa/misc.frm'

Или:

ERROR: PleskDBException: Unable to connect to database: mysql_connect(): No such file or directory /var/run/mysqld/mysqld.sock (Error code: 2002). Please check that database server is started and accessible. (Abstract.php:69) 

Страница обзора домена в разделе Домены> example.com недоступна:

500 Server Error 
Type SB_Facade_Exception_Generic 
Message 
File 
generic.php Line 33

Обновление Plesk завершается с ошибкой:

DATABASE ERROR!!!
Database psa database found, but version undefined


Служба MySQL не запускается:

 # service mysqld start
Timeout error occurred trying to start MySQL Daemon.
Starting MySQL: [FAILED]

Утилиты mysqldump и mysqlcheck завершаются ошибкой с сообщением об ошибке, в котором утверждается, что таблица не существует (проверьте учетную запись администратора MySQL):

# mysqlcheck -uadmin -p****** db_example
db_example.BackupTasks
error : Can't find file: 'BackupTasks.MYD' (errno: 2)

Нельзя правильно запросить таблицу с помощью оператора mysql> SELECT:

select * from db_example.misc;
ERROR 1033 (HY000): Incorrect information in file: './db_example/misc.frm'

Невозможно исправить таблицу, поскольку механизм InnoDB не поддерживает восстановление.

  • # mysql> repair table misc;
    +-------------------------+--------+----------+-------------------------------------------------------+
    | Table                   | Op     | Msg_type | Msg_text                                              |
    +-------------------------+--------+----------+-------------------------------------------------------+
    | psa.APSApplicationItems | repair | note     |The storage engine for the table doesn't support repair|
    +-------------------------+--------+----------+-------------------------------------------------------+


Следующая информация может быть найдена в файле журнала MySQL:

150704 19:09:27 InnoDB: Waiting for the background threads to start
150704 19:09:28 InnoDB: Error: tablespace size stored in header is 3712 pages, but
150704 19:09:28 InnoDB: the sum of data file sizes is only 3072 pages
150704 19:09:28 InnoDB: Cannot start InnoDB. The tail of the system tablespace is
150704 19:09:28 InnoDB: missing. Have you edited innodb_data_file_path in my.cnf in an
150704 19:09:28 InnoDB: inappropriate way, removing ibdata files from there?
150704 19:09:28 InnoDB: You can set innodb_force_recovery=1 in my.cnf to force
150704 19:09:28 InnoDB: a startup if you are trying to recover a badly corrupt database.

Или

InnoDB: Assertion failure in thread 3876 in file ha_innodb.cc line 17352
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.

Или

InnoDB: Assertion failure in thread 140154354255616 in file trx0purge.c line 848
InnoDB: Failing assertion: purge_sys->purge_trx_no <= purge_sys->rseg->last_trx_no
InnoDB: We intentionally generate a memory trap.

OR 

InnoDB: Your database may be corrupt or you may have copied the InnoDB tablespace but not the InnoDB log files. Please refer to http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html for information about forcing recovery

Причина крушения  InnoDB

Большинство повреждений InnoDB связаны с оборудованием. Поврежденные записи страниц могут быть вызваны перебоями питания или плохой памятью. Эта проблема также может быть вызвана использованием сетевого хранилища (NAS) и размещением на нем баз данных InnoDB.

 

Was this answer helpful?

« Back