Specified key was too long; max key length is 767 bytes LÖSUNG


In diesem kleinen Artikel erkläre ich, wie Ihr das Problem mit der maximalen Länge einer Spalte beheben könnt.

Nachdem ich auch stundenlang gesucht habe, fand ich die Lösung endlich und kann das Problem reproduzieren und lösen. Diese Fehlermeldung verhindert mein TYPO3 System aktuell, diverse Tabellen anzulegen:

Specified key was too long; max key length is 767 bytes

Das Problem hängt mit der Kollation der Datenbank und Tabellen zusammen. Manchmal kann das auch an der MySQL Version liegen. Versionen unter 5.6 können mit der Index Größe über 767 Bytes nicht arbeiten.

Die Kollation ändern

Indem Ihr die Kollation ändert, könnt Ihr auch Spalten mit größeren Key-Längen erstellen. Die Kollation der Datenbank sollte auf utf8_unicode_ci und der Tabellen auf utf8 oder auch utf8_unicode_ci geändert werden.

Auch eine Anpassung des CREATE TABLE Befehls kann helfen: am Ende nach ENGINE = InnoDB könnt Ihr noch den ROW_FORMAT auf Dynamic stellen, das sieht dann ungefähr so aus:

CREATE TABLE ...DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC

Bei meiner TYPO3 Installation habe ich die Query aus der Fehlermeldung kopiert und dann den CREATE TABLE Befehl manuell mit den angepassten Parametern ausgeführt, siehe da – Die Tabelle kann erstellt werden.


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.