当前位置:首页 > Mysql教程 > 列表

解决Mysql InnoDB: Failing assertion: ret || !assert_on_error问题

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-17 17:26:40 浏览: 评论:0 

Mysql InnoDB:Failing assertion: ret || !assert_on_error问题是因为内存或空间不足导致了,解决办法就是重启一下系统即可解决. 

国庆回来后,发现mysql停止服务了,没办法继续启动了,查看日志,看到:

  1. 131008 09:56:03 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 
  2. 131008  9:56:03 [Warning] option 'read_buffer_size': unsigned value 1024 adjusted to 8192 
  3. 131008  9:56:03 [Note] Plugin 'FEDERATED' is disabled. 
  4. 131008  9:56:03 InnoDB: The InnoDB memory heap is disabled 
  5. 131008  9:56:03 InnoDB: Mutexes and rw_locks use GCC atomic builtins 
  6. 131008  9:56:03 InnoDB: Compressed tables use zlib 1.2.3 
  7. 131008  9:56:03 InnoDB: Using Linux native AIO 
  8. 131008  9:56:03 InnoDB: Initializing buffer pool, size = 128.0M 
  9. 131008  9:56:03  InnoDB: Assertion failure in thread 47953380146304 in file ut0mem.c line 103 
  10. InnoDB: Failing assertion: ret || !assert_on_error 
  11. InnoDB: We intentionally generate a memory trap. 
  12. InnoDB: Submit a detailed bug report to http://bugs.mysql.com. 
  13. InnoDB: If you get repeated assertion failures or crashes, even 
  14. InnoDB: immediately after the mysqld startup, there may be 
  15. InnoDB: corruption in the InnoDB tablespace. Please refer to 
  16. InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html 
  17. InnoDB: about forcing recovery. 
  18. 01:56:03 UTC - mysqld got signal 6 ; 
  19. This could be because you hit a bug. It is also possible that this binary 
  20. or one of the libraries it was linked against is corrupt, improperly built, 
  21. or misconfigured. This error can also be caused by malfunctioning hardware. 
  22. We will try our best to scrape up some info that will hopefully help 
  23. diagnose the problem, but since we have already crashed,  
  24. something is definitely wrong and this may fail. 
  25.  
  26. key_buffer_size=0 
  27. read_buffer_size=8192 
  28. max_used_connections=0 
  29. max_threads=151 
  30. thread_count=0 
  31. connection_count=0 
  32. It is possible that mysqld could use up to  
  33. key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 312196 K  bytes of memory 
  34. Hope that's ok; if not, decrease some variables in the equation. 
  35.  
  36. Thread pointer: 0x0 
  37. Attempting backtrace. You can use the following information to find out 
  38. where mysqld died. If you see no messages after this, something went 
  39. terribly wrong... 
  40. stack_bottom = 0 thread_stack 0x40000 
  41. /usr/libexec/mysqld(my_print_stacktrace+0x2e)[0x78b18e] 
  42. /usr/libexec/mysqld(handle_fatal_signal+0x493)[0x6741b3] 
  43. /lib64/libpthread.so.0(+0xf500)[0x2b9d0116a500] 
  44. /lib64/libc.so.6(gsignal+0x35)[0x2b9d02b9f8a5] 
  45. /lib64/libc.so.6(abort+0x175)[0x2b9d02ba1085] 
  46. /usr/libexec/mysqld[0x8363d8] 
  47. /usr/libexec/mysqld[0x8944be] 
  48. /usr/libexec/mysqld[0x893d26] 
  49. /usr/libexec/mysqld[0x84ea80] 
  50. /usr/libexec/mysqld[0x858aab] 
  51. /usr/libexec/mysqld[0x817bf0] 
  52. /usr/libexec/mysqld[0x7e4390] 
  53. /usr/libexec/mysqld(_Z24ha_initialize_handlertonP13st_plugin_int+0x41)[0x676eb1] 
  54. /usr/libexec/mysqld[0x58d4d8] 
  55. /usr/libexec/mysqld(_Z11plugin_initPiPPci+0x8c8)[0x590db8] 
  56. /usr/libexec/mysqld[0x518078] 
  57. /usr/libexec/mysqld(_Z11mysqld_mainiPPc+0x3fd)[0x51b1dd] 
  58. /lib64/libc.so.6(__libc_start_main+0xfd)[0x2b9d02b8bcdd] 
  59. /usr/libexec/mysqld[0x510ee5] 
  60. The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains 
  61. information that should help you find out what is causing the crash. 
  62. 131008 09:56:03 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 

根据这个链接:http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html,进行操作,修改my.cnf,加入:

[mysqld]

innodb_force_recovery = 4

innodb_force_recovery有0 - 6,7个选项,具体含义可以直接访问上面的链接,官方解释得很清楚,保存my.cnf后,尝试重启mysql,又出现新情况:

  1. 131008 10:00:24 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 
  2. 131008 10:00:24 [Note] Plugin 'FEDERATED' is disabled. 
  3. 131008 10:00:24 InnoDB: The InnoDB memory heap is disabled 
  4. 131008 10:00:24 InnoDB: Mutexes and rw_locks use GCC atomic builtins 
  5. 131008 10:00:24 InnoDB: Compressed tables use zlib 1.2.3 
  6. 131008 10:00:24 InnoDB: Using Linux native AIO 
  7. 131008 10:00:24 InnoDB: Initializing buffer pool, size = 128.0M 
  8. InnoDB: mmap(137363456 bytes) failed; errno 12 
  9. 131008 10:00:24 InnoDB: Completed initialization of buffer pool 
  10. 131008 10:00:24 InnoDB: Fatal error: cannot allocate memory for the buffer pool  --phpfensi.com 
  11. 131008 10:00:24 [ERROR] Plugin 'InnoDB' init function returned error. 
  12. 131008 10:00:24 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 
  13. 131008 10:00:24 [ERROR] Unknown/unsupported storage engine: InnoDB 
  14. 131008 10:00:24 [ERROR] Aborting 
  15.  
  16. 131008 10:00:24 [Note] /usr/libexec/mysqld: Shutdown complete 
  17.  
  18. 131008 10:00:24 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 

竟然提示内存不足以分配,暂时释放了一下内存,重新重启,终于正常了,接下来要查哪里内存使用出现问题了.

Tags: InnoDB:Failing assert_on_error

分享到: