2013-08-12 2 views
6

У меня есть пустая база данных, которую я не могу удалить. Первоначально он содержал таблицу, из которой я не мог бы выбрать SELECT. Так что я DROP'ed все таблицы из этой базы данных и попытался удалить базу данных без успеха:«ERROR 2013 (HY000): потерянное соединение с сервером MySQL во время запроса« при удалении базы данных

mysql> drop database my_database; 
ERROR 2013 (HY000): Lost connection to MySQL server during query 

Теперь у меня есть пустая база данных, что я не могу удалить в моем сервере.

Я проверить MySQL Error.log, вот выход:

130812 10:02:45 InnoDB: Assertion failure in thread 140409656780544 in file row0mysql.c line 3682 
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. 
14:02:45 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. 

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

Thread pointer: 0x7fb3ad55d030 
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 = 7fb3abb71e60 thread_stack 0x30000 
/usr/sbin/mysqld(my_print_stacktrace+0x29)[0x7fb3ac1516b9] 
/usr/sbin/mysqld(handle_fatal_signal+0x3d8)[0x7fb3ac039318] 
/lib/x86_64-linux-gnu/libpthread.so.0(+0xfcb0)[0x7fb3aab96cb0] 
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x35)[0x7fb3aa1ff425] 
/lib/x86_64-linux-gnu/libc.so.6(abort+0x17b)[0x7fb3aa202b8b] 
/usr/sbin/mysqld(+0x561acd)[0x7fb3ac192acd] 
/usr/sbin/mysqld(+0x542c63)[0x7fb3ac173c63] 
/usr/sbin/mysqld(+0x40837f)[0x7fb3ac03937f] 
/usr/sbin/mysqld(_Z24plugin_foreach_with_maskP3THDPFcS0_P13st_plugin_intPvEijS3_+0x165)[0x7fb3abf4daa5] 
/usr/sbin/mysqld(_Z11mysql_rm_dbP3THDPcbb+0x300)[0x7fb3abf23580] 
/usr/sbin/mysqld(_Z21mysql_execute_commandP3THD+0x203c)[0x7fb3abf418ac] 
/usr/sbin/mysqld(+0x31301e)[0x7fb3abf4401e] 
/usr/sbin/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcj+0x19e7)[0x7fb3abf46247] 
/usr/sbin/mysqld(_Z24do_handle_one_connectionP3THD+0x105)[0x7fb3abfe0405] 
/usr/sbin/mysqld(handle_one_connection+0x50)[0x7fb3abfe0520] 
/lib/x86_64-linux-gnu/libpthread.so.0(+0x7e9a)[0x7fb3aab8ee9a] 
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7fb3aa2bcccd] 

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

The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains 
information that should help you find out what is causing the crash. 
130812 10:02:45 [Note] Plugin 'FEDERATED' is disabled. 
130812 10:02:45 InnoDB: The InnoDB memory heap is disabled 
130812 10:02:45 InnoDB: Mutexes and rw_locks use GCC atomic builtins 
130812 10:02:45 InnoDB: Compressed tables use zlib 1.2.7 
130812 10:02:45 InnoDB: Using Linux native AIO 
130812 10:02:45 InnoDB: Initializing buffer pool, size = 128.0M 
130812 10:02:45 InnoDB: Completed initialization of buffer pool 
130812 10:02:45 InnoDB: highest supported file format is Barracuda. 
130812 10:02:45 InnoDB: Waiting for the background threads to start 
130812 10:02:46 InnoDB: 5.5.32 started; log sequence number 25852489043 
130812 10:02:46 InnoDB: !!! innodb_force_recovery is set to 4 !!! 
130812 10:02:46 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306 
130812 10:02:46 [Note] - '127.0.0.1' resolves to '127.0.0.1'; 
130812 10:02:46 [Note] Server socket created on IP: '127.0.0.1'. 
130812 10:02:46 [Note] Event Scheduler: Loaded 0 events 
130812 10:02:46 [Note] /usr/sbin/mysqld: ready for connections. 
Version: '5.5.32-0ubuntu0.12.10.1' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu) 

Я пытался поставить конфигурацию innodb_force_recovery = 4 и перезапустить MySQL, но это не имело никакого эффекта.

Переустановка сервера здесь не является вариантом. Это произошло на многих машинах (2 Ubuntu и 2 CentOS), но я не могу воспроизвести проблему прямо сейчас.

+2

Отметьте: http://dba.stackexchange.com/questions/35959/error-when-dropping-innodb-database –

+0

Кажется, это ошибка. И поскольку MySQL хранит все данные InnoDB в одном пространстве, я сомневаюсь, что это возможно, что это можно решить с помощью операций файловой системы. Резюме: вы не сможете заниматься этим –

ответ

1

Я считаю, что это связано с повреждением таблицы InnoDB. У меня тоже была аналогичная проблема, и я смог точно определить ее на одном столе. Я все еще исправляю проблему, дублируя таблицу и удаляя единственную запись, которая в моем случае плоха.

Эта связь значительно помогло мне:

Recovering InnoDB Table Corruption

Извините за неполный ответ, но это помогло мне совсем немного, когда я нашел его.

Смежные вопросы