MySQL ändern ft_max_word_len Fehler

7

Ich habe MySQL auf meinem Computer installiert und muss ft_max_word_lendie maximale Wortlänge ändern , die MySQL indiziert. Wenn ich es jedoch über die bereitgestellten Tools einrichte und abfrage, wird es immer noch als maximal 84 aufgeführt (ich benötige 128+). Wenn ich versuche, die Befehlszeile zu verwenden, wird Folgendes angezeigt:

C:\>mysqld --ft_max_word_len=128
111210 23:55:46 [Warning] option 'ft_max_word_len': unsigned value 256 adjusted to 84
111210 23:55:46 [Warning] option 'ft_max_word_len': unsigned value 128 adjusted to 84

Es sollte beachtet werden, dass ich versucht habe, es in den GUI-Tools auf 256 zu ändern, damit dieser Wert möglicherweise von dort stammt. Aber warum sollte ich beides bekommen und warum kann ich diesen Wert nicht anpassen?

Bemerkenswerterweise bin ich unter Windows 7 und MySQL 5.1.41 für 64bit.

Update: Aus dem Kommentar von @ thinice geht hervor, dass dies ein Fehler in MySQL ist (und nach den Klängen ein größtenteils undokumentierter Fehler , den ich ändern muss). Vielleicht ist meine Frage, ob jemand eine Ahnung hat, wie man diesen Wert ändert?

LoveAndCoding
quelle
2
Ändert sich auch nicht mit my.cnf in CentOS unter 5.5.18 - es gibt wenig bis gar keine Dokumentation und keine Fehler (von meiner Suche) - vielleicht als einen melden?
Thinice
Dies ist in der Tat schlecht dokumentiert. Das Problem ist, dass der Maximalwert bei verschiedenen Betriebssystem- / Bitversionen von MySQL variiert. Ich bin mir nicht sicher, ob es sich um einen Fehler in einer späteren Version handelt, der nicht so gut dokumentiert ist. Haben Sie MySQL 5.5 getestet?
Jeffatrackaid
Ich habe das Problem herausgefunden, ohne es erhöhen zu müssen ft_max_word_len, aber ich werde später spätere Versionen testen und sehen, ob das funktioniert. In der Zwischenzeit wurde es als MySQL-Fehler unter bugs.mysql.com/bug.php?id=63718
LoveAndCoding am
Dies ist eine häufig gestellte Frage, da bei vielen Versionen der Standardmaximalwert nicht erhöht werden kann. Es ändert sich nur, wenn Sie einen kleineren Wert festlegen. : /
Grosshat
Ich erhalte die gleiche Ausgabe unter Windows 7 x64 und MySQL 5.5.24 x64.
Barancw

Antworten:

1

Der Wert von 84 für HA_FT_MAXCHARLENist definiert als ein Drittel von HA_FT_MAXBYTELEN(was 254 ist). Dies ist in definiert include/ft_global.hund das Ändern bedeutet, dass MySQL neu kompiliert wird - es ist keine Laufzeitvariable. Der Grund, warum es ein Drittel ist, ist, dass in vielen Zeichensätzen ein Zeichen nicht gleich einem Byte ist.

Wenn Sie HA_FT_MAXBYTELENdie Tests ändern und neu kompilieren, schlagen sie fehl, sodass Sie in ein nicht unterstütztes Land wechseln , obwohl Ihre spezifische Anwendung möglicherweise funktioniert.

Aaron Brady
quelle