Archiv für die Kategorie ‘MySQL’

17. Mai 2011

Magento-Schnellsuche: Suche nach Artikelnummer / SKU bleibt ohne Ergebnis

Bei einem unserer Kunden stießen wir kürzlich auf folgendes Problem: Trotz korrekter Konfiguration des SKU-Attributs bezüglich der Sichtbarkeit in der Schnellsuche wurden Artikel bei Eingabe der Artikelnummer über die Schnellsuche nicht gefunden. Diese lagen etwa in der Form “123 45 0″ vor. Zunächst vermuteten wir einen Bug in Magento. Nach zwei Stunden Code-Analyse stellte sich dann heraus, dass das Problem die MySQL-Konfiguration war:

Magento greift für die interne Suchfunktionalität auf die MySQL-Volltextsuche zurück. Per Default beträgt die minimale Wortlänge in der MySQL-Volltextsuche vier Zeichen. Leerzeichen gelten als Wortgrenze, sodass die SKUs unseres Kunden folglich in der MySQL-Default-Konfiguration unter den Tisch fallen.

Die minimale Suchwortlänge lässt sich manuell über die MySQL-Systemvariable “ft_min_word_len” anpassen. Der aktuelle Wert lässt sich per “mysql> SHOW VARIABLES;” ermitteln, sofern dieser von der Default-Einstellung abweicht. Dabei ist zu beachten, dass der Neuaufbau des (Volltextsuch)-Index der entsprechenden Tabelle (hier: catalogsearch_fulltext) manuell angestoßen werden muss.

31. März 2011

MySQL: Error 2006 – MySQL server has gone away

Dieser Fehler tritt zumeist auf, wenn ein Datenimport durchgeführt wird, bei dem viele Daten mit einer einzige INSERT-Anweisung importiert werden und die maximale Paketgröße überschritten wird. Abhilfe schafft in der Regel eine Erhöhung der maximalen Paketgröße in der MySQL-INI-Datei:

[mysqld]
set-variable = max_allowed_packet=8M

09. September 2009

MySQL: auto_increment-Zähler zurücksetzen

Um den Wert eines auto_increment-Feldes in einer MySQL-Tabelle nach dem Löschen aller Datensätze wieder auf “1″ zurückzusetzen, ohne die komplette Tabelle löschen und wieder neu anlegen zu müssen, genügt das folgende MySQL-Kommando:

ALTER TABLE name_der_tabelle AUTO_INCREMENT = 1

siehe auch: ALTER TABLE Syntax