• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    完美解决mysql启动后随即关闭的问题(ibdata1文件损坏导致)

    机房一台服务器上的mysql运行一段时间了,突然出现了一个很奇怪的现象:重启后无法恢复了!准确情况是:启动mysql后随即就又关闭了。

    查看mysql错误日志如下:

    160920 22:41:41 mysqld_safe Starting mysqld daemon with databases from /home/MysqlData/
    2016-09-20 22:41:41 0 [Note] /Data/app/mysql5.6.25/bin/mysqld (mysqld 5.6.25-log) starting as process 32372 ...
    2016-09-20 22:41:42 32372 [Note] Plugin 'FEDERATED' is disabled.
    2016-09-20 22:41:42 32372 [Warning] option 'innodb-write-io-threads': unsigned value 1000 adjusted to 64
    2016-09-20 22:41:42 32372 [Warning] option 'innodb-read-io-threads': unsigned value 1000 adjusted to 64
    2016-09-20 22:41:42 32372 [Note] InnoDB: Using atomics to ref count buffer pool pages
    2016-09-20 22:41:42 32372 [Note] InnoDB: The InnoDB memory heap is disabled
    2016-09-20 22:41:42 32372 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
    2016-09-20 22:41:42 32372 [Note] InnoDB: Memory barrier is not used
    2016-09-20 22:41:42 32372 [Note] InnoDB: Compressed tables use zlib 1.2.3
    2016-09-20 22:41:42 32372 [Note] InnoDB: Using CPU crc32 instructions
    2016-09-20 22:41:42 32372 [Note] InnoDB: Initializing buffer pool, size = 1.0G
    2016-09-20 22:41:42 32372 [Note] InnoDB: Completed initialization of buffer pool
    2016-09-20 22:41:42 32372 [Note] InnoDB: Highest supported file format is Barracuda.
    2016-09-20 22:41:42 32372 [Note] InnoDB: Log scan progressed past the checkpoint lsn 20293587957
    2016-09-20 22:41:42 32372 [Note] InnoDB: Database was not shutdown normally!
    2016-09-20 22:41:42 32372 [Note] InnoDB: Starting crash recovery.
    2016-09-20 22:41:42 32372 [Note] InnoDB: Reading tablespace information from the .ibd files...
    2016-09-20 22:41:42 32372 [Note] InnoDB: Restoring possible half-written data pages
    2016-09-20 22:41:42 32372 [Note] InnoDB: from the doublewrite buffer...
    InnoDB: Doing recovery: scanned up to log sequence number 20293596130
    2016-09-20 22:41:42 32372 [Note] InnoDB: Starting an apply batch of log records to the database...
    InnoDB: Progress in percent: 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 136254, file name mysql-bin.000013
    2016-09-20 22:41:43 32372 [Note] InnoDB: 128 rollback segment(s) are active.
    2016-09-20 22:41:43 32372 [Note] InnoDB: Waiting for purge to start
    2016-09-20 22:41:43 7f77a9edd700 InnoDB: Assertion failure in thread 140151928772352 in file trx0purge.cc line 699
    InnoDB: Failing assertion: purge_sys->iter.trx_no = purge_sys->rseg->last_trx_no
    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.6/en/forcing-innodb-recovery.html
    InnoDB: about forcing recovery.
    02:41:43 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.

    分析日志后发现,数据库无法重启的原因是因为ibdata1文件损坏,重启后无法正常恢复。

    解决办法:

    需要跳过恢复步骤,修改my.cnf文件,在my.cnf中的[mysqld]中添加:

    innodb_force_recovery = 6
    innodb_purge_threads = 1

    解释:

    innodb_force_recovery可以设置为1-6,大的数字包含前面所有数字的影响。

    具体数字对应的含义:

    1-----(SRVFORCEIGNORECORRUPT):忽略检查到的corrupt页。
    2-----(SRVFORCENOBACKGROUND):阻止主线程的运行,如主线程需要执行full purge操作,会导致crash。
    3-----(SRVFORCENOTRXUNDO):不执行事务回滚操作。
    4-----(SRVFORCENOIBUFMERGE):不执行插入缓冲的合并操作。
    5-----(SRVFORCENOUNDOLOGSCAN):不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交。
    6-----(SRVFORCENOLOG_REDO):不执行前滚的操作。

    再次启动mysql就ok了~

    如果还无法启动,则需要删除数据目录datafile下的 ibdata1,ib_logfile*等文件。

    启动后导出MySQL数据库,重新恢复即可。

    以上这篇完美解决mysql启动后随即关闭的问题(ibdata1文件损坏导致)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • mysql-8.0.15-winx64 使用zip包进行安装及服务启动后立即关闭问题
    • MySQL关闭密码强度验证功能
    • MySQL 关闭子表的外键约束检察方法
    • PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
    • 安全地关闭MySQL服务的教程
    • lnmp下如何关闭Mysql日志保护磁盘空间
    • Windows下使用批处理实现启动关闭mysql
    • MySQL数据库开启、关闭、查看函数功能的方法
    • MySQL关闭过程详解和安全关闭MySQL的方法
    • Mysql的游标的定义使用及关闭深入分析
    • MySQL服务器的启动和关闭
    • 怎样安全地关闭MySQL实例
    上一篇:详谈mysqldump数据导出的问题
    下一篇:关于mysql数据库误删除后的数据恢复操作说明
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    完美解决mysql启动后随即关闭的问题(ibdata1文件损坏导致) 完美,解决,mysql,启动,后,