简体   繁体   English

InnoDB“表已满”错误

[英]InnoDB “The Table is Full” error

I have a MySQL InnoDB table on a RedHat Enterprise Linux 4 server, and after trying to import a database previously backed up using mysqldump I got a "the table is full" error. 我在RedHat Enterprise Linux 4服务器上有一个MySQL InnoDB表,在尝试导入以前使用mysqldump备份的数据库后,我得到了“表已满”错误。

The table currently has 463,062 rows in it, and the ibdata1 file on disk is currently 3.37Gb. 该表当前有463,062行,磁盘上的ibdata1文件目前为3.37Gb。 A quick " SHOW VARIABLES; " shows that the innodb_data_file_path is set to ibdata1:10M:autoextend , and the filesystem is ext3, so I'd expect it to have plenty of room left to grow. 一个快速的“ SHOW VARIABLES; ”显示innodb_data_file_path设置为ibdata1:10M:autoextend ,文件系统是ext3,所以我希望它有足够的空间来增长。

Any ideas how I can go about establishing exactly what the problem is? 我有什么想法可以确切地确定问题是什么?

检查存储InnoDB数据文件的磁盘是否未满

We fixed the exact same issue on CentOS on AWS. 我们在AWS上的CentOS上修复了完全相同的问题。 Contray to what most of the posts indicate, this can be fixed by adding right below the [mysqld] section in your my.cnf file: 与大多数帖子所示的相反,可以通过在my.cnf文件的[mysqld]部分下面添加来修复:

innodb_data_file_path=ibdata1:10G:autoextend

If I was you I would try actually setting the last part of the innodb_data_file_path command ie innodb_data_file_path ibdata1:10M:autoextend:max:3999M 如果我是你,我会尝试实际设置innodb_data_file_path命令的最后一部分,即innodb_data_file_path ibdata1:10M:autoextend:max:3999M

Not specifying the large number can sometimes have it default to unpredicatable numbers. 不指定大数字有时可以将其默认为不可预测的数字。

Not to be too obvious but ensure you restart after making the config change! 不要太明显,但确保在更改配置后重新启动!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM