1954
MariaDBERRORCriticalSchemaHIGH confidence

Table upgrade required. Please run "REPAIR TABLE `%s`" or dump/reload to fix it

Production Risk

High — table is inaccessible until upgraded.

What this means

A table was created with an older file format that is not compatible with the current MySQL version. MySQL refuses to open the table until it is upgraded.

Why it happens
  1. 1Table created with MySQL 4.x or earlier MyISAM format opened in MySQL 5.x+.
  2. 2Table file format is obsolete and not supported by the current storage engine version.
How to reproduce
trigger — this will error
trigger — this will error
SELECT * FROM old_format_table; -- triggers error on open

expected output

ERROR 1954 (HY000): Table upgrade required. Please do "REPAIR TABLE 'old_format_table'" or dump/reload to fix it.

Fix 1

Run REPAIR TABLE

Run REPAIR TABLE
REPAIR TABLE old_format_table;

Why this works

REPAIR TABLE rebuilds the table in the current format.

Fix 2

Dump and reload the table

Dump and reload the table
-- Dump: mysqldump db old_format_table > table.sql
-- Reload: mysql db < table.sql

Why this works

Exporting and reimporting recreates the table in the current format.

What not to do

Sources
Official documentation ↗

MySQL 8.0 — 1954 ER_OLD_FILE_FORMAT

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All MariaDB errors