innodb 表修复问题,select错误ERROR 1033 (HY000):Incorrect information in file: './blog/b
文彪 2010-05-24 10:17:03 公司的磁盘损坏,通过数据修复把数据库文件拷贝了出来。启动mysql后
select几个INNODB表都是ERROR 1033 (HY000): Incorrect information in file: './blog/bg_blog.frm'
使用InnoDB-force-recovery=4,然后使用mysqldump提示信息:mysqldump: Got error: 1033: Incorrect information in file: './blog/bg_blog.frm' when using LOCK TABLES
show enginesv\G 显示InnoDB引擎DISABLED关闭的
在配置文件中设置InnoDB相关选项
#skip-innodb
default_storage_engine=innodb
后则不能启动mysql,日志信息为:
100524 9:47:54 [Note] /usr/libexec/mysqld: Normal shutdown
100524 9:47:54 [Note] /usr/libexec/mysqld: Shutdown complete
100524 09:47:54 mysqld ended
100524 09:47:55 mysqld started
InnoDB: Error: log file ./ib_logfile0 is of different size 0 10485760 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
100524 9:47:55 [ERROR] Default storage engine (InnoDB) is not available
100524 9:47:55 [ERROR] Aborting
100524 9:47:55 [Note] /usr/libexec/mysqld: Shutdown complete
100524 09:47:55 mysqld ended
==========================================================
然后再配置文件中取消
#default_storage_engine=innodb
提示错误为
InnoDB: bounds; space id 0 page number 615029, page 125 in doublewrite buf.
InnoDB: Warning: a page in the doublewrite buffer is not within space
InnoDB: bounds; space id 0 page number 615030, page 126 in doublewrite buf.
InnoDB: Warning: a page in the doublewrite buffer is not within space
InnoDB: bounds; space id 0 page number 615031, page 127 in doublewrite buf.
InnoDB: Error: trying to access page number 64898 in space 0,
InnoDB: space name ./ibdata1,
InnoDB: which is outside the tablespace bounds.
InnoDB: Byte offset 0, len 16384, i/o type 10.
InnoDB: If you get this error at mysqld startup, please check that
InnoDB: your my.cnf matches the ibdata files that you have in the
InnoDB: MySQL server.
100524 9:51:06InnoDB: Assertion failure in thread 47485830380144 in file fil0fil.c line 3959
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.0/en/forcing-recovery.html
InnoDB: about forcing recovery.
100524 9:51:06 - mysqld got signal 11 ;
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=0
read_buffer_size=131072
max_used_connections=0
max_connections=100
threads_connected=0
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 217599 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
thd=(nil)
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...
frame pointer is NULL, did you compile with
-fomit-frame-pointer? Aborting backtrace!
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.
100524 09:51:06 mysqld ended
很急,请各位路过的大侠,能帮则帮,路过的也帮忙吆喝一声,鄙人跪谢