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.
This error also appears if the partition on which
tmpdir
resides fills up (due to an alter table or otherYou may be running out of space either in the partition where the mysql tables are stored (usually /var/lib/mysql) or in where the temporary tables are stored (usually /tmp).
You may want to: - monitor your free space during the index creation. - point the tmpdir MySQL variable to a different location. This requires a server restart.
If you use NDBCLUSTER as storage engine, you should increase
DataMemory
andIndexMemory
.Mysql FQA
I fixed this problem by increasing the amount of memory available to the vagrant VM where the database was located.
You need to modify the limit cap set in my.cnf for the INNO_DB tables. This memory limit is not set for individual tables, it is set for all the tables combined.
If you want the memory to autoextend to 512MB
If you don't know the limit or don't want to put a limit cap, you can modify it like this
we had: SQLSTATE[HY000]: General error: 1114 The table 'catalog_product_index_price_bundle_sel_tmp' is full
solved by:
edit config of db:
nano /etc/my.cnf
tmp_table_size=256M max_heap_table_size=256M