Publicado el Dejar un comentario

MySQL: Incorrect key file for table xxxxx.MYI

Incorrect key file for table xxxxxx.MYI;try repai it.

El mensaje anterior se lo envió a un cliente al tratar de hacer un update a un campo de una tabla. Según el cliente eso le pasó después de un corte inesperado de energía eléctrica. Al parecer la tabla sufrió un daño y es necesario repararla.

Para reparar desde mysql ejecutamos la siguiente sentencia:

mysql> repair table <nombre_tabla> USE_FRM;

Donde <nombre_tabla> es el nombre de la tabla que está generando el error que coincide con el nombre del archivo llave .MYI.

Dependiendo de la cantidad de filas o registros que tiene la tabla a reparar la sentencia puede tardar un buen tiempo. La sentencia al terminar regresará dos filas indicando que la reparación fue exitosa.

Es recomendable siempre hacer respaldos diarios de la base de datos para recuperar la tabla en caso de que la sentencia no pueda reparar la tabla y poder recuperar la información desde los respaldos.

¡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!