Menu

MySQL Error 1114: The Table Is Full

Diagnose MySQL Error 1114 by checking disk space, the affected storage engine, InnoDB tablespaces, MEMORY limits, and query temporary tables.

Posted on By
On this page

MySQL Error 1114 (HY000, ER_RECORD_FILE_FULL) means the operation could not add more data to a table or tablespace. In MySQL 8.4, the error reference specifically notes that InnoDB can report it when the system tablespace runs out of space. The same error can also result from a full filesystem, an operating-system file-size limit, a MyISAM size limit, or a full MEMORY table. Check what operation failed and which storage engine is involved before changing a limit. See the MySQL 8.4 error reference and table-size limits.

Identify the table, storage engine, and operation

If the message names a table, inspect its engine and size:

SHOW TABLE STATUS FROM app LIKE 'events';

Replace the schema and table names. If the error occurred while running a SELECT, GROUP BY, ORDER BY, or ALTER TABLE, the full table may be an internal or operation-specific temporary table rather than the named application table. Capture the full error message and the statement that triggered it.

From an administrative connection, inspect relevant paths and limits:

SHOW GLOBAL VARIABLES
WHERE Variable_name IN (
  'datadir',
  'tmpdir',
  'innodb_data_file_path',
  'max_heap_table_size',
  'tmp_table_size'
);

On a self-managed server, ask an administrator to check free space on the filesystems containing the data directory and any temporary-storage paths. Managed database services may expose storage usage and logs in their own console. Do not assume that checking /tmp alone covers where the failed operation stores data.

Check InnoDB tablespace and disk capacity

If an InnoDB write failed, verify that the filesystem has space and that the affected tablespace has not reached a configured maximum. innodb_data_file_path shows the system tablespace files and any autoextend or max limit. In MySQL 8.4, InnoDB rolls back the failed statement when a tablespace runs out of space; check the transaction state before retrying subsequent work. See InnoDB error handling and system tablespace configuration.

Adding or resizing a tablespace file is a server-administration change. Take a backup and follow the procedure for the exact tablespace and MySQL version; do not edit or move InnoDB data files while the server is running. If the filesystem is full, free or extend space using the administrator’s storage plan before retrying the write.

Check engine-specific size limits

  • MEMORY table: its maximum size is controlled by max_heap_table_size. Check the active value and table definition. Changing the variable does not enlarge an existing table automatically; follow the MySQL version’s documented procedure before recreating or altering it.
  • MyISAM table: check the data and index file limits imposed by the filesystem and the engine’s configured maximum. MySQL documents MAX_ROWS and AVG_ROW_LENGTH as table options for sizing MyISAM tables where appropriate; do not apply them to an InnoDB table.
  • InnoDB or other engine: compare the engine, tablespace, filesystem, and server/provider limits. A larger SQL column or a change to tmp_table_size does not resolve a full persistent tablespace.

See MySQL’s table-size limit guidance and max_heap_table_size system variable.

If a query’s internal temporary table is full

When Error 1114 occurs during a query rather than while writing a persistent table, inspect the query plan and the temporary-storage capacity available to the server. MySQL 8.4 can convert an in-memory internal temporary table to an on-disk InnoDB temporary table; the tmp_table_size limit controls an individual in-memory table, while disk-backed temporary storage still needs available space. Raising an in-memory threshold can increase memory use and will not fix a full disk or tablespace. See internal temporary table use.

Distinguish other capacity errors

  • Error 1114: the affected table or storage area cannot accept more data.
  • Error 1206: InnoDB cannot allocate enough lock-structure memory for its lock table; it is not a disk-capacity error. See Error 1206 troubleshooting.
  • Error 1040: the server has exhausted ordinary client connection slots; see Error 1040 troubleshooting.

For other MySQL error guides, browse MySQL Error Troubleshooting.