1114
MySQLERRORCriticalResource LimitHIGH confidence

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.

What this means

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.

Why it happens
  1. 1The filesystem containing InnoDB datafiles has run out of space
  2. 2innodb_data_file_path is configured with a fixed maximum size (e.g., ibdata1:10M:autoextend:max:100M) and has been reached
  3. 3A MEMORY engine table has exceeded max_heap_table_size
  4. 4The disk quota for the MySQL data directory has been reached
How to reproduce

A MEMORY table exceeds its configured size limit.

trigger — this will error
trigger — this will error
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.

Free disk space or expand the InnoDB tablespace
-- 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.

Increase max_heap_table_size for MEMORY tables
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.

What not to do

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.

Version notes
MariaDB 10.6+

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.

Sources
Official documentation ↗

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

← All MySQL errors