我在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解决了这个问题
答案 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并让它自动扩展,现在我可以将新数据写入该表。