首页 文章

MySQL innodb“表已满”错误

提问于
浏览
0

如果有人帮助我,我将非常感激 . 我花了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 回答

  • 4

    关于4GB作为文件限制的唯一方法是,如果你有一个32位版本的MySQL . 还要检查32位操作系统 . (移动自评论,经过验证 . )

  • 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.
    
  • 0

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

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

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

相关问题