Varios métodos para reparar tablas corruptas en servidor de base de datos MySQL y MariaDB (modo gráfico con Workbench y por línea de comandos).
- Reparar tablas MySQL y MariaDB en modo gráfico con MySQL Workbench.
- Reparar tablas erróneas MySQL MariaDB por comando.
Reparar tablas MySQL y MariaDB en modo gráfico con MySQL Workbench
Abriremos MySQL Workbench y realizaremos la conexión al servidor de base de datos MySQL o MariaDB. Pulsaremos en «Schemas» [1], desplegaremos el esquema (catálogo o base de datos) con el que queramos trabajar [2]. Desplegaremos las tablas del esquema [3] y seleccionaremos una de ellas (da igual cual). Sobre la tabla seleccionada, pulsaremos con el botón derecho y elegiremos «Table Maintenance…» [4]:

Seleccionaremos las tablas que queramos analizar o reparar y pulsaremos en «Analyze Table» para analizar y reparar o en «Optimize Table» para optimizar la tabla:

En realidad, lo que hace el modo gráfico es ejecutar las siguientes sentencias SQL para cada tabla seleccionada:
Tarea | Comando | Parámetros |
Analizar y almacenar la distribución de claves de una tabla | analyze table nombre_tabla; | NO_WRITE_TO_BINLOG |
Reorganizar almacenamiento físico de las tablas y los índices (optimizar) | optimize table nombre_tabla; | NO_WRITE_TO_BINLOG |
Chequear tabla (comprobar si tiene errores) | check table nombre_tabla; | Medium, Quick, Extended, For Upgrade, FAST, CHANGED |
Reparar tabla con errores | repair table nombre_tabla; | NO_WRITE_TO_BINLOG, LOCAL, QUICK, EXTENDED, USE_FRM |
Con lo cual, desde una ventana donde podamos ejecutar SQL, podremos analizar, optimizar o chequear tablas, por ejemplo:
1 2 3 |
analyze table agenda.auth_group; check table agenda.auth_group; optimize table agenda.auth_group; |
En cada operación mostrará el estado de ejecución (el resultado). Si la tabla está correcta o si la operación se ha ejecutado correctamente mostrará OK.
Para reparar una tabla con errores desde el modo gráfico, también podemos usar el comando «repair table…», por ejemplo:
1 |
repair table login.sesion; |

En el caso de que no pueda aplicar alguna de las tareas (reparar, optimizar, analizar) en alguna tabla (normalmente por su motor), mostrará un mensaje indicándolo:
Table does not support optimize, doing recreate + analyze instead.

Reparar tablas erróneas MySQL MariaDB por comando
Para reparar todas las tablas de todos los catálogos de un servidor MySQL/MariaDB directamente, podemos hacerlo por comando, ejecutando:
1 |
mysqlcheck -u usuario --password=contraseña --auto-repair --check --all-databases |
En este caso, se analizarán y repararán (si tienen errores) todas las tablas de todas las bases de datos del servidor MySQL/MariaDB desde el que se ha ejecutado el comando:

También podremos analizar y reparar una o varias tablas de una o varias bases de datos. Por ejemplo, para analizar/reparar las tablas factura y presupuesto de la base de datos proyectoa_gi, usaremos el comando:
1 |
mysqlcheck -u root --password=aaaaaaaa --auto-repair --check proyectoa_gi factura presupuesto |
