¿Por qué MySQL me da "ERROR 114 - Tabla llena"?

¿Por qué MySQL me da "ERROR 114 - Tabla llena"?

Tengo una tabla de base de datos MySQL con 31.107.600 filas. Está usando InnoDB. Esto está en un sistema CentOS 7.

La tabla tiene estas columnas:

  • identificación
  • marca de tiempo
  • Mac
  • datos
  • dirección
  • Identificación del sitio

Quiero crear un índice, entonces ejecuto este comando:

ALTER TABLE MY_TABLE ADD INDEX idx_my_index (mac, site_id, timestamp);

Tarda unos 30 segundos y luego me da esto:

ERROR 1114 (HY000): The table 'MY_TABLE' is full

Mi MySQL utiliza el valor predeterminado /var/lib/mysqlpara almacenar sus datos. Actualmente, la partición en la que se encuentra esa carpeta tiene 12 GB libres y mi base de datos tiene solo 2,7 GB de tamaño, por lo que puedo decir, debería tener espacio más que suficiente.

¿Por qué veo este error? Las búsquedas en línea muestran que tal vez esté utilizando una tabla temporal y teniendo restricciones en el tamaño de la tabla temporal. ¿Será que? ¿O algo mas? ¿Cómo puedo confirmar esto?

Respuesta1

Mientras se ejecuta la instrucción ALTER TABLE, observe el uso de espacio en todos los sistemas de archivos que utilizan df. Vea si el espacio en otro sistema de archivos, particularmente uno pequeño, está disminuyendo rápidamente, por ejemplo, si tiene /tmp en tmpfs.

información relacionada