B.5.2.12 テーブルが満杯です

テーブルが満杯であるというエラーが発生した場合は、ディスクが満杯であるか、テーブルが最大サイズに達した可能性があります。MySQL データベースの事実上の最大テーブルサイズは、通常、MySQL の内部制限ではなくオペレーティングシステムのファイルサイズに関する制約によって判断します。セクションD.10.3「テーブルサイズの制限」を参照してください。

User Comments
  Posted by Ignacio Gutierrez on November 2, 2006
If you reach the limit of 2Gb in data, use Delete command to delete information and if you are using MyIsam Engine, don't forget to use Optimize Table, to reclaim unused space and reduce file sizes.
  Posted by Dan Moore on May 22, 2007
  Posted by Josh Vickery on February 22, 2008
If you get an error like The table '#sql-4e0b_462' is full when attempting to run an alter or optimize statement on an InnoDb table check your innodb_data_file_path setting. It is possible to set a Max on that file, in which case the InnoDb table can fill up even though you have plenty of diskspace and you will get the above error.

Since the error message is reported on a temporary table, I found this difficult to track down.
  Posted by Marius Siegas on May 19, 2008
In my.cnf I had (this is by default on gentoo linux):

innodb_data_file_path = ibdata1:10M:autoextend:max:128M

Which meant that the innodb file size is 10M and it is being automatically extended but only until it reaches 128M and then we have a problem. I was trying to import some huge database dump, then the problem occured that said "The table 'foo' is full" and after that even my old databases stopped working with the same error when updating. After some searching I found this page, and since my max is 2G and I'm happy ;). Good luck to you too!
  Posted by Chris Calender on September 4, 2009
Note that in 5.0 (pre-5.0.85) and in 5.1 (pre-5.1.38), you could receive the "table is full" error for an InnoDB table if InnoDB runs out of undo slots (bug #18828).
  Posted by Manish Joshi on March 23, 2010
and you can also get this error while importing data (say huge data ..)
  Posted by Stephen DeGabriele on July 16, 2012
I have been struggling with table is full errors for a while and have not found any answers.

Finally stumbled on the answer myself, it had to do with INNODB settings for the innodb_log_file_size and innodb_log_buffer_size

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 (I went to 1000MB as I am 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. I set innodb_log_buffer_size to 1/4 of the size of my log file and the problems went away.

Hope this helps others!

Sign Up Login You must be logged in to post a comment.