If a table-full error occurs, it may be that the disk is full or that the table has reached its maximum size. The effective maximum table size for MySQL databases is usually determined by operating system constraints on file sizes, not by MySQL internal limits. See Section E.10.3, “Limits on Table Size”.

User Comments
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.
Good information here: http://jeremy.zawodny.com/blog/archives/000796.html
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.
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!
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).
and you can also get this error while importing data (say huge data ..)
Add your own comment.