1114ERRORTier 3 — Handle with care✅ HIGH confidence

The table is full

Category: Resource LimitVersions: All MariaDB / MySQL versions

🔴 Production Risk Error

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
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;
ERROR 1114 (HY000): The table 'tmp' is full

Fix 1: Free disk space or expand the InnoDB tablespace

When the filesystem or tablespace is full.

fix
-- 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 a MEMORY table hit its size cap.

fix
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

Why it's wrong: 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 docs: https://mariadb.com/kb/en/innodb-system-tablespace/

🔧 Source ref: MariaDB Server error code 1114 / ER_RECORD_FILE_FULL

📖 Further reading: MariaDB InnoDB tablespace

Confidence assessment

✅ HIGH confidence

Well-documented. InnoDB tablespace behaviour is stable.

See also

📄 Reference pages

InnoDB tablespacemax_heap_table_sizeinnodb_data_file_path
⚙️ This error reference was generated with AI assistance and reviewed for accuracy. Examples are provided to illustrate common scenarios and may not cover every case. Always test fixes in a development environment before applying to production. Spotted an error? Suggest a correction →