mysql the table is full

 


【0】最终要的还是查看错误日志定位问题啊

【1】InnoDB :: 

【1.1】cannot find a free slot for an undo log

最近数据库数据量及访问频率比较大的两个表出现了the table xxx is full的问题,导致无法写入数据。

查看mysql log发现错误:

InnoDB :: cannot find a free slot for an undo log

 

原因分析:由于innodb的任何操作都隱含有一個transaction,而出现问题的表由于数据量大操作频繁导致同時有太多事務,以致出现这样的错误。
解决办法:增大配置文件里的参数innodb_log_file_size到1G 。

【1.2】write to file  ./ibdata failed at offset  310 3214654123

  

 

  由上图可知,有2种可能。

  (1)ibdata已经达到设置上限

  (2)ibdata已经达到OS的文件系统的 大小上限,无法再申请空间扩展。

 

 

【2】the table is full

有时候项目好好的就报:数据库操作错误,请联系管理员,发现后台报这个

来说说解决mysql出现"the table is full"的问题:

 

mysql出现"the table is full"的问题,一般有两个原因:

【2.1】MEMORY (HEAP) storage engine

You are using the MEMORY (HEAP) storage engine; in this case you need to increase the value of the max_heap_table_size system variable. See Section 5.1.3, “Server System Variables”.

ERROR 1114 (HY000) at line 1720: The table 'XXXX' is full

于是就修改Mysql的配置文件my.ini,在[mysqld]下添加/修改两行:
tmp_table_size = 256M
max_heap_table_size = 256M

系统默认是16M,修改完后重启mysql

 

【2.2】硬盘空间满了,清理硬盘即可

不要被mysql的安装目录所欺骗, 最好亲自去看看数据存放目录是哪

在my.ini  搜索 datadir

看其指向的目录 就是数据存放目录

 使用df -h 查看

 

我当时的解决方案是,将数据库的磁盘清理了就好了;

我觉得还可以创建临时表,设置表的size

posted @   郭大侠1  阅读(5241)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2019-03-24 (3.14)mysql基础深入——mysql 日志分析工具之pt-querty-digest【待完善】
点击右上角即可分享
微信分享提示