【问题标题】:MySQL innodb “The Table is Full” errorMySQL innodb“表已满”错误
【发布时间】:2016-05-18 06:19:30
【问题描述】:

如果有人帮助我,我将不胜感激。 我花了大约 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)

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

我知道如果启用了“innodb_file_per_table”,设置“innodb_data_file_path”是无关紧要的,但我尝试设置它。没有差异。 我试图做 mysql 的全新安装。结果一样。

编辑

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

【问题讨论】:

  • Windows 和/或 MySQL 是 32 位版本吗?
  • 这是正确的问题!我已经检查了所有内容,但如果 mysql 是 32 位则没有。这是!我已经迁移到 64 位版本,一切正常。非常感谢!

标签: mysql innodb


【解决方案1】:

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

【讨论】:

  • 在我的情况下,问题是 32 位 MySQL。我从没想过这可能是个问题。谢谢瑞克!
【解决方案2】:

我也不确定,但阅读此内容可能会对您有所帮助。 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 服务。那真的很奇怪,我认为5.7中存在错误
【解决方案3】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-21
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    相关资源
    最近更新 更多