The error appears when MySQL detects an InnoDB full-text auxiliary table whose name does not contain the expected hexadecimal object ID, blocking upgrades or DDL on the parent table.
ER_INNODB_FT_AUX_NOT_HEX_ID occurs when a legacy InnoDB full-text index uses an auxiliary table without a hex object ID. Rebuild the index with ALTER TABLE ... ALGORITHM=COPY or drop and recreate it to resolve the problem.
ER_INNODB_FT_AUX_NOT_HEX_ID
MySQL throws error code 1879 when it encounters an InnoDB full-text auxiliary table that does not follow the hex-encoded object identifier naming rule introduced in MySQL 5.6. These auxiliary tables store full-text index data and must match the parent table's internal object ID.
The problem surfaces most often during an upgrade to MySQL 5.7 or later, or when running DDL such as ALTER TABLE or CREATE INDEX on a table created in an older version. MySQL halts the operation to protect data integrity until the index is rebuilt.
Upgraded databases keep legacy auxiliary table names that lack a hex object ID, violating new validation checks added in 5.7.4. As soon as MySQL scans metadata for DDL or during startup, it raises the exception.
Manual renaming of FT auxiliary tables or restoring from a dump that preserved old names can also trigger the error. Any mismatch between the expected internal object ID and the table name will fail the check.
The fastest fix is to rebuild the full-text index so MySQL regenerates properly named auxiliary tables. Use ALTER TABLE with ALGORITHM=COPY or drop and recreate the index.
If downtime is acceptable, dropping all full-text indexes before the upgrade and recreating them afterwards eliminates the legacy names entirely.
During in-place upgrade: run ALTER TABLE tbl_name ENGINE=InnoDB ALGORITHM=COPY to rebuild every full-text index.
During a schema change: run ALTER TABLE tbl_name DROP INDEX ft_idx; then CREATE FULLTEXT INDEX ft_idx ON tbl_name(col) WITH PARSER ngram;
Create all new full-text indexes on MySQL 5.7+ to ensure the auxiliary naming convention is correct from the start.
Automate checks in CI pipelines to detect legacy auxiliary names before deploying schema migrations. Galaxy lets teams store vetted ALTER scripts, making it easy to rerun consistent rebuilds.
ER_INNODB_FT_INDEX_TABLE_NAME (1880) - Raised when an auxiliary table is missing entirely. Recreate the index.
ER_INNODB_FT_INDEX_CACHE_RESET (1881) - Cache reset failed. Flush InnoDB caches or restart the server.
Tables created before MySQL 5.6 carried plain-text FT auxiliary names. Upgrading without rebuilding leaves invalid names.
Renaming an auxiliary table breaks the hex ID convention and triggers the error on next metadata access.
Dumping only primary tables but not their auxiliary tables can desynchronize naming, leading to error 1879.
Auxiliary table missing - rebuild or recreate full-text index.
Cache reset problem - restart or flush InnoDB cache to fix.
Document ID overflow - optimize or rebuild index to reset counters.
No. Dropping and recreating a full-text index affects only index data, not the underlying rows.
No. The upgrade process halts until the offending index is rebuilt, ensuring metadata consistency.
For most versions, INPLACE skips rebuilding auxiliary tables. Use ALGORITHM=COPY or drop and recreate for a guaranteed fix.
Galaxy stores vetted rebuild scripts in shared Collections, letting teams apply the same ALTER statements across environments without manual copying.