Por que o MySQL me dá “ERROR 114 – Table Full”?

Por que o MySQL me dá “ERROR 114 – Table Full”?

Eu tenho uma tabela de banco de dados MySQL com 31.107.600 linhas. Está usando InnoDB. Isso está em um sistema CentOS 7.

A tabela possui estas colunas:

  • eu ia
  • carimbo de data/hora
  • Mac
  • dados
  • direção
  • ID do site

Quero criar um índice, então executo este comando:

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

Demora cerca de 30 segundos e depois me dá isto:

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

Meu MySQL está usando o padrão /var/lib/mysqlpara armazenar seus dados. Atualmente, a partição em que a pasta está tem 12 GB livres e meu banco de dados tem apenas 2,7 GB de tamanho, então, pelo que sei, ele deve ter espaço mais que suficiente.

Por que estou vendo esse erro? Pesquisas online mostram que talvez ele esteja usando uma tabela temporária e atingindo restrições quanto ao tamanho da tabela temporária. Poderia ser isso? Ou alguma outra coisa? Como posso confirmar isso?

Responder1

Enquanto a instrução ALTER TABLE estiver em execução, observe o uso de espaço em todos os sistemas de arquivos usando df. Veja se o espaço em outro sistema de arquivos, especialmente um pequeno, está diminuindo rapidamente, por exemplo, se você tiver /tmp no tmpfs.

informação relacionada