MySQL 5.5:无法删除数据库:查询期间与 MySQL 服务器的连接丢失

MySQL 5.5:无法删除数据库:查询期间与 MySQL 服务器的连接丢失

在我的 mysql 数据库严重崩溃后,我进行了恢复,除了一个模式之外,一切都正常。在 phpMyAdmin 中,此模式不包含任何表,但是我们要求 mysql 删除该模式(删除数据库 xxxx),我收到以下错误:

Lost connection to MySQL server during query 

在 mysql error.log 中,我看到以下内容:

InnoDB: Load table 'xxxx/menu' failed, the table has missing foreign key indexes. Turn off 'foreign_key_checks' and try again.140120 10:52:35  InnoDB: Assertion failure in thread 139903484229376 in file row0mysql.c line 3822
InnoDB: Failing assertion: table
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.5/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
09:52:35 UTC - mysqld got signal 6 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed,
something is definitely wrong and this may fail.
Please help us make Percona Server better by reporting any
bugs at http://bugs.percona.com/

key_buffer_size=16777216
read_buffer_size=131072
max_used_connections=6
max_threads=153
thread_count=5
connection_count=5
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 351196 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x314ff30
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 7f3dd17aee80 thread_stack 0x30000
/usr/sbin/mysqld(my_print_stacktrace+0x2e)[0x7c613e]
/usr/sbin/mysqld(handle_fatal_signal+0x4a4)[0x69daf4]
/lib/x86_64-linux-gnu/libpthread.so.0(+0xfcb0)[0x7f3dd0d96cb0]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x35)[0x7f3dcff87425]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x17b)[0x7f3dcff8ab8b]
/usr/sbin/mysqld[0x813038]
/usr/sbin/mysqld[0x7eb25c]
/usr/sbin/mysqld[0x69db6f]
/usr/sbin/mysqld(_Z24plugin_foreach_with_maskP3THDPFcS0_P13st_plugin_intPvEijS3_+0x226)[0x5b2376]
/usr/sbin/mysqld(_Z11mysql_rm_dbP3THDPcbb+0x616)[0x587ca6]
/usr/sbin/mysqld(_Z21mysql_execute_commandP3THD+0x139e)[0x5a411e]
/usr/sbin/mysqld(_Z11mysql_parseP3THDPcjP12Parser_state+0x314)[0x5aa304]
/usr/sbin/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcj+0x20a4)[0x5ac454]
/usr/sbin/mysqld(_Z24do_handle_one_connectionP3THD+0x137)[0x648397]
/usr/sbin/mysqld(handle_one_connection+0x51)[0x648471]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x7e9a)[0x7f3dd0d8ee9a]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7f3dd00453fd]

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (7f3d98004b60): is an invalid pointer
Connection ID (thread ID): 710
Status: NOT_KILLED

我已经测试了所有 innodb_force_recovery 值(1 到 6)并禁用了前面的键检查,但没有任何帮助...此外,在 information_schema 中我可以看到一些值:

  • 在 INNODB_SYS_TABLES ==> (1717, 'xxxx', 'menu', 1, 10, 0) 中,
  • 在 INNODB_SYS_FOREIGN ==> ('xxxx/menu_FK_1', 'xxxx/menu', 'kms_site1/page_zone_component', 1, 5) 中
  • 在 INNODB_SYS_FOREIGN_COLS ==> ('xxxx/menu_FK_1', 'page_zone_component_id', 'id', 0) 中

我认为,在 innodb 描述文件中有一些残留的表/索引,但我不知道如何修复它......

相关内容