ERROR 1114 can be triggered when you try to perform an
INSERT statement on a table.
The following example shows how the error happens when I try to insert data into the
mysql> INSERT INTO `users` VALUES (15, "Nathan", "Sebhastian") ERROR 1114 (HY000): The table users is full
To fix this error, you need to first check the disk space in where your MySQL server is installed and see if the partition is really full.
You can do so by running the
df -h command from the Terminal. Here’s an example partitions listed from my server:
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 200G 67G 134G 34% / tmpfs 16G 34M 16G 1% /dev/shm /dev/vdb1 800G 446G 354G 56% /tmp tmpfs 16G 1.6G 15G 11% /run/dbus
If you see any disk on the list with the
Use% value reaching around
90%, then you need to check if your
mysql is installed on that disk.
Most likely you will have
mysql located in
/var/www/mysql directory, so you need to make sure the main mounted partition at
/ has the
Use% lower than
But if you’re
Use% values are low like in the example above, then the error is not caused by the disk partition.
You need to check on your MySQL configuration file next.
Fix MySQL table is full error from the configuration file
You need to open your MySQL config file and look at the configuration for
The default value may be as follows:
innodb_data_file_path = ibdata1:12M:autoextend:max:256M
The values of
innodb_data_file_path option above will create an
ibdata1 directory that stores all critical information for your
The maximum size of data you can store in your
InnoDB tables are
256MB as shown in the
autoextend:max:256M in the option above.
To resolve the MySQL table is full issue, try increasing the size of your
autoextend parameter to
512M like this:
innodb_data_file_path = ibdata1:12M:autoextend:max:512M
Alternatively, you can also just write
autoextend without specifying the maximum size to allow
InnoDB tables to grow until the disk size is full:
innodb_data_file_path = ibdata1:12M:autoextend
Once done, save your configuration file and restart your MySQL server:
sudo service mysql stop sudo service mysql start
Try to connect and insert the data into your database table again. It should work this time.
If you’re using the
MyISAM engine for your tables, then MySQL permits each
MyISAM table to grow up to
256TB by default.
MyISAM engine limit can still be increased up to
65,536TB if you need to. Check out the official MySQL documentation on table size limits on how to do that.
Good luck resolving the issue! 👍