MySQL - alter table ... utf8 => Fehler #1071 HILFE!! ;-)
foomaker
- datenbank
Hallo zusammen,
habe website auf utf8 umgestellt. Mache dasselbe mit MySQL-DB, sprich Kollation der DB, der Tabellen und der Felder ändern.
Mit "ALTER TABLE meinetabelle CHANGE feld1 feld1 TEXT CHARACTER SET utf8 ..." klappt das auch bestens ... bis auf 3 Felder in einer Tabelle.
Große Tabelle mit 277.949 Einträgen. Bei den 3 Feldern, wo es nicht geht, handelt es sich um 1 vom Typ TEXT, die beiden anderen sind VARCHAR(100).
Die Fehlermeldung:
SQL-Befehl:
ALTER TABLE bilder
CHANGE suche
suche
TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL
MySQL meldet: Dokumentation
#1071 - Specified key was too long; max key length is 1000 bytes
Ein weiteres Feld VARCHAR(100) lies sich (wie auch andere in der Tabelle) problemlos ändern.
Was kann ich tun? Was muss ich kontrollieren? Wo setze ich an? Ich gebe zu, dass ich nicht mal ansatzweise weiss, was ich nun tun soll ... außer natürlich hier zu posten. ;-)
Freu mich auf Antwort.
Hi,
MySQL meldet: Dokumentation
#1071 - Specified key was too long; max key length is 1000 bytes
eine Google-Suche nach der Fehlermeldung sowie dem Keyword "UTF-8" lieferte mir http://bugs.mysql.com/bug.php?id=4541. Das hättest Du doch auch geschafft, oder?
Cheatah
Hallo Cheatah,
eine Google-Suche nach der Fehlermeldung sowie dem Keyword "UTF-8" lieferte mir http://bugs.mysql.com/bug.php?id=4541. Das hättest Du doch auch geschafft, oder?
Cheatah
»»
Weiss der Geier, warum ich DAS nicht gefunden habe!! *grummelt beschämt vor sich hin*
Danke für den Link. Das dort Geschriebene löst zwar das Problem nicht, schiebt aber den schwarzen Peter zu meinem Provider. Der wird sich freuen. ;-)
Ausserdem weiss ich wieder ein bisschen mehr. :-)
Gruß vom foomaker
Hi,
Weiss der Geier, warum ich DAS nicht gefunden habe!! *grummelt beschämt vor sich hin*
echt? Okay, dann gehe ich ihn mal fragen ...
Cheatah ;-)
echo $begrüßung;
eine Google-Suche nach der Fehlermeldung sowie dem Keyword "UTF-8" lieferte mir http://bugs.mysql.com/bug.php?id=4541. Das hättest Du doch auch geschafft, oder?
Danke für den Link. Das dort Geschriebene löst zwar das Problem nicht, schiebt aber den schwarzen Peter zu meinem Provider. Der wird sich freuen. ;-)
Ich glaube kaum, dass dein Provider es sich antun wird, einen Patch, der zwar offiziell ist, aber händisch hinzugefügt werden muss, in seine(n) MySQL-Server einzupflegen. Der muss ja bei jedem Sicherheitsupdate erneut eingebracht werden. Es ist auch recht fraglich, wie oft oder wie selten dieser Patch im Einsatz ist und demzufolge wie oft oder selten Nebenwirkungen bekannt werden.
Stattdessen würde ich lieber mein Augenmerk auf das eigene Datenbankdesign legen und mich fragen, ob derart große Daten als Schlüssel taugen, bzw. wenn wirklich ein solch großer Schlüsselwert nötig ist, ob es dafür Alternativen gibt. Beispielsweise, wenn ein Unique-Key auf einem großen Text benötigt wird, vielleicht kann man diesen Text zusätzlich als MD5-Wert ablegen, auf den man den Unique-Key problemlos legen kann.
echo "$verabschiedung $name";