Ich habe MySQL auf meinem Computer installiert und muss ft_max_word_len
die 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?
quelle
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=63718Antworten:
Der Wert von 84 für
HA_FT_MAXCHARLEN
ist definiert als ein Drittel vonHA_FT_MAXBYTELEN
(was 254 ist). Dies ist in definiertinclude/ft_global.h
und 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_MAXBYTELEN
die Tests ändern und neu kompilieren, schlagen sie fehl, sodass Sie in ein nicht unterstütztes Land wechseln , obwohl Ihre spezifische Anwendung möglicherweise funktioniert.quelle