MySQL 5.7 Release Notes
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 C.10.3, “Limits on Table Size”.
Since the error message is reported on a temporary table, I found this difficult to track down.
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!
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!
A SQL Load data command was failing with the error: Database 'LOAD' operation failed: The table 'volume_uid_age' is full
This database used InnoDB and innodb_file_per_table=1
In the filesystem we could see that the table (.ibd) was just under 2GB.
The problem was that the NFS mount was being performed with the option 'nfsvers=2'.
NFS v2 has a 2GB filesize limit.
Shutdown everything down, unmount the filesystem, change /etc/fstab to nfsvers=3, remount and restart.
Problem resolved.