MySQL Table Full(InnoDB) - 错误#1114

时间:2016-07-28 21:22:28

标签: mysql database innodb

我的客户端有一个相对较大(或至少不是很小)的数据集。磁盘上约2Gb左右。

运行使用此DB运行的CRM应用程序的报告功能时,我们会遇到

Database Error Code: The table 'tablexyz' is full, Error 1114

令人费解的原因有几个。首先,它设法决定在页面尝试加载报告的大约3秒内。其他是:

  

A)它是InnoDB表,因此没有明确的行限制   (或者我错了?)..

     

B)它是一个x64系统,安装了x64 MySQL   InnoDB表的有效大小限制是文件系统的单一限制   filesize 4Tb限制..

     

C)磁盘未满,大约有700Gb   可用。磁盘上的ibdata1文件是1.89Gb,ib日志文件是   每个5Mb。

MySQL 自己从源自定义编译,因为客户端请求自定义MAX_INDEXES值为250.据我所知,这对此方案没有影响。

为了使问题更加复杂,表格甚至不会正常存在...它似乎是在此报告运行期间动态创建的临时表格。或者至少我认为它确实..在CRM应用程序的整个页面加载过程中,我可以在MySQL中找到该表。我不确定是否有一个我没有看到的更深层次的问题,它是一个红色的鲱鱼,它告诉我它已经满了?欢迎提示。

2 个答案:

答案 0 :(得分:0)

似乎已达到innodb_data_file_path的最大大小。

这可能会有所帮助:ERROR 1114 (HY000): The table is full

答案 1 :(得分:0)

我一直在与这个问题作斗争。大量内存和可用磁盘空间。

最终为我解决问题的是增加 temptable_max_ram。这与增加 tmp_table_sizemax_heap_table_size 相结合似乎已停止将临时表推送到磁盘,从而以某种方式达到其最大大小。

当然应该考虑 Rick James 提出的问题。