Publicado el Dejar un comentario

MySQL: Error “Incorrect key file for table xxxxx.MYI” y cómo repararlo

Recientemente, un cliente experimentó el siguiente error al intentar ejecutar un UPDATE sobre una tabla en MySQL:

Incorrect key file for table 'xxxxx'.MYI; try to repair it

Este tipo de error generalmente indica que el archivo de índice (.MYI) de la tabla se ha dañado. En este caso específico, el problema ocurrió después de un corte inesperado de energía eléctrica, lo que sugiere que la tabla no fue cerrada correctamente y requiere reparación.


🛠️ Cómo reparar la tabla afectada

Para resolverlo desde el cliente de MySQL, se puede ejecutar el siguiente comando:

mysql> REPAIR TABLE nombre_tabla USE_FRM;

📌 Nota importante:

  • Reemplaza nombre_tabla con el nombre real de la tabla que está generando el error.
  • Este nombre normalmente coincide con el del archivo .MYI afectado.

⏳ ¿Cuánto tiempo tarda?

El tiempo de ejecución depende directamente de la cantidad de registros que contenga la tabla. Durante el proceso, MySQL devolverá dos filas indicando el estado de la reparación. Si todo sale bien, se mostrarán mensajes de éxito en ambas.


🗂️ Recomendación para prevenir futuras incidencias

Es fundamental realizar respaldo diario de la base de datos, especialmente si se trata de tablas con información crítica. Si el proceso de reparación falla, tener una copia de seguridad puede ser la única forma de recuperar los datos perdidos.


¡Saludos!

Publicado el Dejar un comentario

Postgresql 15: permission denied for schema public

Un cliente desarrolla aplicaciones web con Django y al hacer el deploy de su aplicación y crear las tablas en la base de datos Postgresql versión 15 (migrations) le lanzaba el siguiente error:

“… (permission denied for schema public LINE 1: CREATE TABLE ….”

Al usuario de conexión a la base de datos se le habían asignado todos los permisos o privilegios sobre la base de datos que regularmente el cliente asignaba en anteriores instalaciones con éxito donde la instalación había funcionado sin problemas.

La diferencia con las instalaciones anteriores era la versión del Postgresql, lo había hecho en versiones 14 o anteriores de este motor de base de datos. Revisando la documentación de la versión 15 se encontró que el permiso de creación en al esquema PUBLIC ya no es público por lo que hay que darle el permiso explícito al usuario. Sólo el propietario de la base de datos tiene por defecto el permiso de creación en el esquema PUBLIC. El cliente había creado la base de datos con el usuario administrador postgres, por lo tanto el propietario por defecto era el usuario postgres. Una solución para corregir este error es hacer, al usuario de conexión, el propietario de la base de datos ejecutando el siguiente comando SQL:

ALTER DATABASE <nombre-base-de-datos> OWNER TO <usuario>;

Una vez ejecutado el comando, la aplicación se instaló sin problemas.

¡Hasta pronto!