MySQL innodb “Table 已满”错误
MySQL innodb “The Table is Full” error
如果有人帮助我,我将不胜感激。
我花了大约 8 个小时在谷歌上搜索,但没有找到解决问题的方法。
我在 Windows 服务器 2008 R2
上有 MySQL 服务器版本 5.7.7
Table引擎是innodb
innodb_file_per_table = 1
当 table 达到 4Gb 时出现错误 "Table is full"。
MySQL 文档说文件系统 table 大小实际上只有一个限制。
(http://dev.mysql.com/doc/refman/5.7/en/table-size-limit.html)
存储数据的硬盘使用 NTFS,只是为了确保我创建了 5Gb 文件没有问题。当然还有超过 10Gb 的免费空间 space.
我知道如果 "innodb_file_per_table" 启用,设置 "innodb_data_file_path" 是无关紧要的,但我尝试设置它。没有区别。
我已尝试对 mysql 进行全新安装。结果相同。
编辑
在我之前安装 MySQL 服务器的家伙不小心安装了 32 位版本。 迁移到 64 位 mysql 解决了这个问题
我也不确定,但阅读本文可能会对您有所帮助。
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 无法创建超过 4Gb table。
作为一种解决方法,我通过将 "innodb_file_per_table" 设置回 0 并重新创建 table 来仅将此 table 移回 ibdata。
有趣的是,即使 ibdata1 在达到 4Gb 时报告 table 已满,即使没有设置最大值和启用自动扩展。
所以我创建了 ibdata2 并让它自动扩展,现在我可以向其中写入新数据 table。
关于 4GB 成为文件限制的唯一方法是如果您有 MySQL 的 32 位版本。还要检查 32 位操作系统。 (从评论中移出,已验证。)
如果有人帮助我,我将不胜感激。 我花了大约 8 个小时在谷歌上搜索,但没有找到解决问题的方法。
我在 Windows 服务器 2008 R2
上有 MySQL 服务器版本 5.7.7Table引擎是innodb
innodb_file_per_table = 1
当 table 达到 4Gb 时出现错误 "Table is full"。 MySQL 文档说文件系统 table 大小实际上只有一个限制。 (http://dev.mysql.com/doc/refman/5.7/en/table-size-limit.html)
存储数据的硬盘使用 NTFS,只是为了确保我创建了 5Gb 文件没有问题。当然还有超过 10Gb 的免费空间 space.
我知道如果 "innodb_file_per_table" 启用,设置 "innodb_data_file_path" 是无关紧要的,但我尝试设置它。没有区别。 我已尝试对 mysql 进行全新安装。结果相同。
编辑
在我之前安装 MySQL 服务器的家伙不小心安装了 32 位版本。 迁移到 64 位 mysql 解决了这个问题
我也不确定,但阅读本文可能会对您有所帮助。 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 无法创建超过 4Gb table。
作为一种解决方法,我通过将 "innodb_file_per_table" 设置回 0 并重新创建 table 来仅将此 table 移回 ibdata。 有趣的是,即使 ibdata1 在达到 4Gb 时报告 table 已满,即使没有设置最大值和启用自动扩展。
所以我创建了 ibdata2 并让它自动扩展,现在我可以向其中写入新数据 table。
关于 4GB 成为文件限制的唯一方法是如果您有 MySQL 的 32 位版本。还要检查 32 位操作系统。 (从评论中移出,已验证。)