• 技术文章 >数据库 >mysql教程

    myslq 所有表共用一个表空间导致ibdata1文件太大数据库挂掉_MySQL

    2016-05-31 08:47:12原创430
    bitsCN.com

    在linux下面使用mysql,由于一开始建库的时候没有做好mysql问价的配置,结果导致所有的表使用一个表空间,导致ibdata1文件在不到半年时间里面变为30G直接导致mysql服务无法启动,应该在/etc/my.cnf文件的[mysqld]里面添加 innodb_file_per_table=1即mysql的表使用单独的表空间。

    innodb_file_per_table=1

    innodb_file_per_table=0

    值为1时表示使用单独的表空间,值为0是表示使用共享的表空间。

    由于楼主在发现这个问题的时候mysql服务已经起不起来了,所以在配置文件里面添加了innodb_force_recovery=6命令。然后启动起来mysql服务,后来备份了数据库,然后从新建库,现在ibdata1文件只有10几M。

    ## innodb_force_recovery
    ## 可以设置为6个非零值:1~6。大的数字包含了前面所有小数字的影响,具体情况如下。
    #1(SRV_FORCE_IGNORE_CORRUPT):忽略检查到的corrupt页。
    #2(SRV_FORCE_NO_BACKGROUND):阻止主线程的运行,如主线程需要执行full purge操作,会导致crash。
    #3(SRV_FORCE_NO_TRX_UNDO):不执行事务回滚操作。
    #4(SRV_FORCE_NO_IBUF_MERGE):不执行插入缓冲的合并操作。
    #5(SRV_FORCE_NO_UNDO_LOG_SCAN):不查看撤销日志(Undo Log),InnoDB存储引擎会将未提交的事务视为已提交。
    #6(SRV_FORCE_NO_LOG_REDO):不执行前滚的操作

    bitsCN.com
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:
    上一篇:mysql的几个alter tabl命令(备忘)_MySQL 下一篇:七、mysql索引选择_MySQL
    PHP编程就业班

    相关文章推荐

    • mysql有没有user表• mysql where关键字怎么用• 什么是mysql主从• mysql慢查询语句是什么• mysql怎么清除日志

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网