MySQL innodb“表已满”错误

时间:2016-05-18 06:19:30

标签: mysql innodb

如果有人帮助我,我将非常感激。 我已经花了8个小时在Google上搜索,但没有找到问题的解决方案。

我在Windows Server 2008 R2上安装了MySQL服务器版本5.7.7

表引擎是innodb

innodb_file_per_table = 1

我收到错误"表格已满#34;当表达到4Gb时。 MySQL文档说,实际上只有一个限制表大小,文件系统。 (http://dev.mysql.com/doc/refman/5.7/en/table-size-limit.html

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

我理解设置" innodb_data_file_path"如果" innodb_file_per_table"是无关紧要的启用,但我试图设置它。没有区别。 我试过干净安装mysql。结果相同。

修改

在我之前安装MySQL服务器的家伙意外安装了32位版本。 迁移到64位mysql解决了这个问题

3 个答案:

答案 0 :(得分:4)

关于4GB成为文件限制的唯一方法是使用32位版本的MySQL。还要检查32位操作系统。 (从评论中移出,经过验证。)

答案 1 :(得分:1)

我也不确定但读到这可能会对你有所帮助。 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.

答案 2 :(得分:0)

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

作为一种解决方法,我通过设置" innodb_file_per_table"将此表仅移回ibdata。回到0并重新创建该表。 有趣的是,即使没有设置max并启用了autoexpand,即使ibdata1报告表达到4Gb也已满。

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