如果有人帮助我,我将非常感激 . 我花了8小时谷歌搜索,没有找到问题的解决方案 .
我在Windows Server 2008 R2上安装了MySQL服务器版本5.7.7
表引擎是innodb
innodb_file_per_table = 1
当表达到4Gb时,我得到错误"Table is full" . MySQL文档表明,对于表大小,文件系统,实际上只有一个限制 . (http://dev.mysql.com/doc/refman/5.7/en/table-size-limit.html)
存储数据的硬盘使用NTFS,只是为了确保我创建5Gb文件没有问题 . 确保有超过10Gb的可用空间 .
我知道如果启用“innodb_file_per_table”,设置“innodb_data_file_path”是无关紧要的,但我试图设置它 . 没有区别 . 我试过干净安装mysql . 结果相同 .
EDIT
在我之前安装MySQL服务器的家伙不小心安装了32位版本 . Migration to 64bit mysql solved that problem
3 回答
关于4GB作为文件限制的唯一方法是,如果你有一个32位版本的MySQL . 还要检查32位操作系统 . (移动自评论,经过验证 . )
我也不确定,但读到这可能会对你有所帮助 . http://jeremy.zawodny.com/blog/archives/000796.html
我没有找到解决方案,我不知道为什么mysql无法创建超过4Gb表 .
作为一种解决方法,我通过将“innodb_file_per_table”设置回0并重新创建该表,仅将此表移回ibdata . 有趣的是,即使没有设置max和启用autoexpand,即使ibdata1报告表达到4Gb时表也已满 .
所以我创建了ibdata2并让它自动扩展,现在我能够将新数据写入该表 .