系统运行一段时间后mysql莫名挂掉,重启之后还是启动不了
出错日志如下:
130120 12:01:23 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql
130120 12:01:23 InnoDB: The InnoDB memory heap is disabled
130120 12:01:23 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130120 12:01:23 InnoDB: Compressed tables use zlib 1.2.3
130120 12:01:23 InnoDB: Initializing buffer pool, size = 128.0M
130120 12:01:23 InnoDB: Completed initialization of buffer pool
130120 12:01:23 InnoDB: highest supported file format is Barracuda.
InnoDB: Log scan progressed past the checkpoint lsn 643509349
130120 12:01:23  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
InnoDB: Doing recovery: scanned up to log sequence number 643660588
130120 12:01:23  InnoDB: Error: space id and page n:o stored in the page
InnoDB: read in are 0:863, should be 0:862!
130120 12:01:23  InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percents: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 
InnoDB: Apply batch completed
InnoDB: Last MySQL binlog file position 0 54618, file name ./MASTER-log-bin.000018
130120 12:01:24  InnoDB: Waiting for the background threads to start
130120 12:01:25  InnoDB: Assertion failure in thread 862086272 in file fut0lst.ic line 83
InnoDB: Failing assertion: addr.page == FIL_NULL || addr.boffset >= FIL_PAGE_DATA
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.
130120 12:01:25 InnoDB: 1.1.6 started; log sequence number 643660588
130120 12:01:25 - 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=8388608
read_buffer_size=131072
max_used_connections=0
max_threads=151
thread_count=0
connection_count=0
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 337830 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.130120 12:01:25 mysqld_safe mysqld from pid file /var/db/mysql/ZhuoMai.com.pid ended
mysqlbufferinitializationfilevariables

解决方案 »

  1.   

    there may be  corruption in the InnoDB tablespace.
    找备份恢复吧
      

  2.   

    http://lsxblog.blog.163.com/blog/static/483686032012516112139170/
    建议你去看看这个mysqld_safe 无法启动解决方案  
      

  3.   

    130120 12:01:23  InnoDB: Error: space id and page n:o stored in the page
     InnoDB: read in are 0:863, should be 0:862!看起来是你的INNODB表和ibdata里的数据不一致了。
    可以通过设置innodb_force_recovery=6来尝试启动,启动之后,把数据全部备份出来,然后把ibdata删除,把innodb_force_recovery=6注释掉,重新导入数据。