I'm trying to add a row to an InnoDB table with a simply query:
INSERT INTO zip_codes (zip_code, city) VALUES ('90210', 'Beverly Hills');
But when I attempt this query, I get the following:
ERROR 1114 (HY000): The table `zip_codes` is full
Doing a "SELECT COUNT(*) FROM zip_codes" gives me 188,959 rows, which doesn't seem like too many considering I have another table with 810,635 rows in that same database.
I am fairly inexperienced with the InnoDB engine and never experienced this issue with MyISAM. What are some of the potential problems here?
EDIT: This only occurs when adding a row to the zip_codes table.
I faced same problem because of low disk space. And partition which is hosting the ibdata1 file which is the system tablespace for the InnoDB infrastructure was full.
In my case, I was trying to run an alter table command and the available disk space was less than the size of table. Once, I increased the disk space the problem went away.
I was experiencing this issue... in my case, I'd run out of storage on my dedicated server. Check that if everything else fails and consider increasing disk space or removing unwanted data or files.
On CentOS 7 simply stopping and starting the MySQL service fixed this for me.
sudo service mysql stop
sudo service mysql start
This could also be the InnoDB limit for the number of open transactions:
http://bugs.mysql.com/bug.php?id=26590
EDIT: First check, if you did not run out of disk-space, before resolving to the configuration-related resolution.
You seem to have a too low maximum size for your
innodb_data_file_path
in yourmy.cnf
, In this exampleyou cannot host more than 512MB of data in all innodb tables combined.
Maybe you should switch to an innodb-per-table scheme using
innodb_file_per_table
.