mysql报错The MySQL server is running with the LOCK_WRITE_GROWTH option so it cannot executethisstatem

Posted 言默夜雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql报错The MySQL server is running with the LOCK_WRITE_GROWTH option so it cannot executethisstatem相关的知识,希望对你有一定的参考价值。

今天mysql报错 The MySQL server is running with the LOCK_WRITE_GROWTH option so it cannot execute this statement

小编特此记录一下问题。

当mysql出现这个报错时,是因为mysql的存储空间爆满了。

 此时我们要进行排查,排查的方向:

1.数据

2.mysql的备份

3.日志

小编这里数据正常,备份正常,日志也正常,3个加起来还不到100G(小编的存储300G),然后小编查看了MySQL的系统文件,

命令:SELECT file_name,CONCAT(TOTAL_EXTENTS,'MB') AS 'FileSize' FROM INFORMATION_SCHEMA.FILES ORDER BY TOTAL_EXTENTS DESC LIMIT 20;

原来是系统文件过大,但是小编好像没有进行过任何操作,为什么会爆满呢?

ibtmp系统文件过大有一下几个原因:

ibtmp1增长主要与SQL有关,尤其是大量的分组聚合,排序,join查询SQL.通常如下情况会造成iptmp1上涨:

1.查询语句会先查询temp_table_size(内存分配)的量,当临时存储的量超过这个参数限制时,就会在iptmp1中申请占用空间。

2.select order group by GROUP BY 无索引字段或group by + order by 的子句字段不一样时。 3.select (select) 子查询

4.insert into select ... from ... 表数据复制

5.select union select 联合语句

 上面的5个原因会导致iptmp1文件一直增加,直到爆满你的存储空间。

你以为找到问题就解决了吗?

还有更恶心的,这个文件只能重启mysql才能释放,因为这是系统文件,根本找不到,确实恶心。而且用了空间竟然不会自动释放,这就很令人作呕。

ok,原因找到了,那就解决吧!

解决方法:

1.扩容存储空间

2.删除一些数据或者备份或者日志(小编不建议这样弄,有风险)

3.如果是ibtmp1文件的原因就重启mysql释放文件

以上是小编遇到的情况,可能和各位遇到的有所不同,请不要吐槽,报错原因千千万,各有各的情况。

以上是关于mysql报错The MySQL server is running with the LOCK_WRITE_GROWTH option so it cannot executethisstatem的主要内容,如果未能解决你的问题,请参考以下文章

Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; the

[SQL] mysql报错 The server time zone value...

Mysql启报错报The server quit without updating PID file

mysql报错The MySQL server is running with the LOCK_WRITE_GROWTH option so it cannot executethisstatem

MySQL 启动日志报错:Starting MySQL. ERROR! The server quit without updating PID file

mysql启动报错:Starting MySQL... ERROR! The server quit without updating PID file