The table is full
Production Risk
Error 1114 on InnoDB in production means the database cannot accept writes. This is a critical incident requiring immediate disk space triage or tablespace expansion. Do not attempt to restart the server until space is available, as InnoDB recovery also requires disk I/O.
Error 1114 is returned when a write operation cannot complete because the storage engine has run out of space. For InnoDB this typically means the tablespace (ibdata1 or a per-table .ibd file) cannot grow, either because the filesystem is full or because innodb_data_file_path has a fixed maximum size. For MEMORY tables it means the max_heap_table_size limit has been reached.
- 1The filesystem containing InnoDB datafiles has run out of space
- 2innodb_data_file_path is configured with a fixed maximum size (e.g., ibdata1:10M:autoextend:max:100M) and has been reached
- 3A MEMORY engine table has exceeded max_heap_table_size
- 4The disk quota for the MySQL data directory has been reached
A MEMORY table exceeds its configured size limit.
SET max_heap_table_size = 1024 * 1024; -- 1 MB limit
CREATE TABLE tmp (data VARCHAR(1000)) ENGINE=MEMORY;
-- Insert until full:
INSERT INTO tmp SELECT REPEAT('x', 1000) FROM information_schema.columns LIMIT 2000;expected output
ERROR 1114 (HY000): The table 'tmp' is full
Fix 1
Free disk space or expand the InnoDB tablespace
WHEN When the filesystem or tablespace is full.
-- Check datafile sizes: SELECT FILE_NAME, TABLESPACE_NAME, TOTAL_EXTENTS * EXTENT_SIZE / 1024 / 1024 AS size_mb FROM information_schema.FILES WHERE FILE_TYPE = 'TABLESPACE'; -- Expand by changing innodb_data_file_path in my.cnf (requires restart): -- innodb_data_file_path = ibdata1:12M:autoextend
Why this works
Removing the :max: cap from innodb_data_file_path allows the ibdata1 file to grow beyond the previous limit. This requires editing my.cnf and restarting the server.
Fix 2
Increase max_heap_table_size for MEMORY tables
WHEN When a MEMORY table hit its size cap.
SET GLOBAL max_heap_table_size = 64 * 1024 * 1024; -- 64 MB -- Or switch to InnoDB for persistent large temporary data: ALTER TABLE tmp ENGINE = InnoDB;
Why this works
max_heap_table_size limits each MEMORY table. Increasing it (or the session variable) before creating the table raises the limit. Alternatively, switching to InnoDB removes the size restriction at the cost of disk I/O.
✕ Set innodb_data_file_path to autoextend with no max on a small disk
An unbounded autoextend tablespace will eventually fill the disk, causing the server to crash rather than returning a clean error.
InnoDB now defaults to file-per-table mode (innodb_file_per_table=ON), which means each table grows its own .ibd file rather than filling the shared ibdata1 tablespace, making 1114 less common for InnoDB.
MariaDB Server error code 1114 / ER_RECORD_FILE_FULL
MariaDB InnoDB tablespace ↗Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev