sql >> Base de Datos >  >> RDS >> Mysql

La tabla MySQL está marcada como bloqueada

Las tablas MyISAM son muy fáciles de bloquear. Hay información de encabezado en cada tabla que realiza un seguimiento de cuántos identificadores de archivos abiertos tiene una tabla MyISAM.

Si mysqld falla, cualquier tabla MyISAM que tuviera identificadores de archivos abiertos nunca tuvo la oportunidad de disminuir el recuento de identificadores de archivos al cerrar cada identificador de archivo. Por lo tanto, si un nuevo identificador de archivo abre una tabla MyISAM (archivo .MYD) y mysqld descubre una discrepancia entre el número de identificadores de archivo que una tabla MyISAM cree que están abiertos y el número de identificadores de archivo que la tabla MyISAM realmente tiene abiertos, la tabla se declarado estrellado.

Hay cuatro (4) métodos para manejar esto:

MÉTODO #1:Configurar la reparación automática de MyISAM

Vea mi publicación https://dba.stackexchange.com/a/15079/877 sobre cómo configurar esto al reiniciar MySQL (15 de marzo de 2012)

MÉTODO #2:Usar InnoDB en lugar de MyISAM

InnoDB tiene una recuperación de fallas integrada en la inicialización del motor de almacenamiento. MyISAM no

MÉTODO #3:Usar Aria en lugar de MyISAM

Aria es el reemplazo directo de MariaDB para MyISAM. Cuenta con mecanismos de recuperación de fallas para tablas individuales.

MÉTODO #4:No elimine -9 en mysqld

Si mysqld falla, de forma deliberada o involuntaria, la información del encabezado de todas las tablas MyISAM abiertas hará que se bloqueen. Evite tener que eliminar manualmente mysqld.