繁体   English   中英

MySQL Innodb“表已满”错误

[英]MySQL innodb “The Table is Full” error

如果有人帮助我,我将非常感激。 我花了大约8个小时来回搜寻,却找不到解决问题的方法。

我在Windows Server 2008 R2上拥有MySQL服务器版本5.7.7

表引擎是innodb

innodb_file_per_table = 1

当表达到4Gb时出现错误“表已满”。 MySQL文档说,实际上表大小,文件系统只有一个限制。 http://dev.mysql.com/doc/refman/5.7/en/table-size-limit.html

存储数据的HDD使用NTFS,只是要确保我创建了5Gb文件而没有问题。 并确保有超过10Gb的可用空间。

我了解如果启用了“ innodb_file_per_table”,则设置“ innodb_data_file_path”无关紧要,但是我尝试进行设置。 没有区别 我试图干净安装mysql。 结果相同。

编辑

在我之前安装MySQL服务器的家伙不小心安装了32位版本。 迁移到64位mysql解决了该问题

关于4GB成为文件限制的唯一方法是使用32位版本的MySQL。 同时检查32位操作系统。 (从评论中移出,已在此进行验证。)

我也不确定,但是读这篇文章可能对您有帮助。 http://jeremy.zawodny.com/blog/archives/000796.html

one more thing one guy had same problem.he had made changes to 
NNODB settings for the innodb_log_file_size and innodb_log_buffer_size!changes were :

1) shutdown mysql
2) cd /var/lib/mysql 
3) mkdir oldIblog
4) mv ib_logfile* oldIblog
5) edit /etc/my.cnf find the line innodb_log_file_size= and increase it to an appropriate value (he went to 1000MB as he was dealing with a very large dataset... 250million rows in one table). If you are not sure I suggest doubling the number every time you get a table is full error. he set innodb_log_buffer_size to 1/4 of the size of his log file and the problems went away.

我没有找到解决方案,我不知道为什么mysql无法创建超过4Gb的表。

作为解决方法,我通过将“ innodb_file_per_table”设置回0来仅将此表移回ibdata并重新创建该表。 有趣的是,即使未设置最大值并启用自动扩展,即使ibdata1报告的表达到4Gb时也已满。

所以我创建了ibdata2并使其自动扩展,现在我可以将新数据写入该表了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM