Warum gibt MySQL mir „ERROR 114 - Table Full“ aus?

Warum gibt MySQL mir „ERROR 114 - Table Full“ aus?

Ich habe eine MySQL-Datenbanktabelle mit 31.107.600 Zeilen. Sie verwendet InnoDB. Dies ist ein CentOS 7-System.

Die Tabelle hat folgende Spalten:

  • Ausweis
  • Zeitstempel
  • Mac
  • Daten
  • Richtung
  • Webseitenadresse

Ich möchte einen Index erstellen, also führe ich diesen Befehl aus:

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

Es dauert etwa 30 Sekunden und gibt mir dann Folgendes aus:

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

Mein MySQL verwendet die Standardeinstellung /var/lib/mysqlzum Speichern seiner Daten. Derzeit sind auf der Partition, auf der sich der Ordner befindet, 12 GB frei, und meine Datenbank ist nur 2,7 GB groß. Soweit ich das beurteilen kann, sollte also mehr als genug Platz vorhanden sein.

Warum wird mir dieser Fehler angezeigt? Online-Suchen zeigen, dass möglicherweise eine temporäre Tabelle verwendet wird und die Größenbeschränkungen der temporären Tabelle erreicht werden? Könnte es das sein? Oder etwas anderes? Wie kann ich das bestätigen?

Antwort1

Beobachten Sie während der Ausführung der ALTER TABLE-Anweisung Ihren Speicherplatzverbrauch auf allen Dateisystemen, die df verwenden. Prüfen Sie, ob der Speicherplatz auf einem anderen Dateisystem, insbesondere einem kleinen, schnell abnimmt, z. B. wenn Sie /tmp auf tmpfs haben.

verwandte Informationen