Mailinglisten-Archive |
m.beck_(at)_bn-automation.de wrote: > Hi! > > Ich möchte eine Fulltextsuche realisieren. Leider kommt beim Erstellen der Fulltext-Indexe immer folgender Fehler. Sowohl V3.23.49 als auch bei V4.0.2. > > 7 -Error on rename of '.\Database\tabelle.MYI' to '.\Database\#sql2-30c-27.MYI'(ERRcode: 13) Die dummen Fragen immer zuerst ;-) : Hat der User, mit dem Du das Kommando ausführst genug Rechte? Hat der User unter dem die MySQL läuft Schreibrechte in dem Verzeichnis? (Unter Windows kenne ich mich nicht aus, daher gibt es möglicherweise noch das Recht Dateien zu erstellen o.ä.) Über welche Schnittstelle schickst Du das Kommando ab (Kommandozeilen-Client, ODBC/JDBC, Browser (PHP, Perl, o.ä.))? > > Die Spalten haben als Typ 'longtext','tinytext' und 'varchar', was > eigentlich für Volltextsuche zugelassen ist oder nicht?? > Kurioserweise kommt dazu, dass wenn ich nun z.B. eine neue Spalte > anlegen will wieder der oben beschriebene Fehler kommt. Ist die DB > kaputt? > Aber selbst wenn ich die DB neu anlege mit allen Werten und > Einstellungen. Immer kommt dieser Fehler. > Nach langem hin und her konnte ich kurzzeitig mal Fulltext-Indexe > erzeugen (bis die Fehlermeldung wieder kam :-)). Als ich per > SQL-Anweisung die DB testen wollte kam die Meldung das diese Spalte > keinen Fulltext-Index habe, obwohl ich sie als Fulltext angelegt habe > und sie mir so auch angezeigt wird.(MySql-Front 2.2) > > Kann mir jemand helfen??????? > > > Zudem habe ich noch eine Frage zu den Indexen: > Wenn ich bei mehreren Spalten einen Fulltext-Index erzeugen möchte, muss ich da > für alle den gleichen Indexnamen verwenden oder jeder einen anderen?? Bzw. wie verhält sich das überhaupt mit der Benennung? > Welche Rolle spielt überhaupt der Indexname bei der Suche, denn in der SQL-Anweisung muss ich ihn ja nicht angeben. Indexnamen sind für MySQL intern total unwichtig. Die Benamselung von Indizes ist nur für uns dumme Menschen wichtig, genau dann, wenn uns MySQL Indexnamen anzeigt und wir dann nicht instantan keine Ahnung haben (sondern erst Momente später ;-) ). Ich persönlich denke, daß man am Namen bereits das meiste erkennen sollte. Daher nenne ich Indizes meist in dieser Form: idx_<Tabellename>__<Spalte1>_<Spalte2>_... Diese Namen sind dann nur schlecht zu schreiben, aber wann muß man das schon? Allerdings läßt sich bei explain SELECT ... FROM <Tabellenname> LEFT JOIN ... sehr leicht erkennen, ob der richtige (erwartete) Index verwandt wird. > > siehe hier: > SELECT * FROM Tabelle WHERE MATCH (Spalte) AGAINST ('Suchwort'); > > Gruß Ralf -- Ralf Narozny SPLENDID Internet GmbH & Co KG Skandinaviendamm 212, 24109 Kiel, Germany fon: +49 431 660 97 0, fax: +49 431 660 97 20 mailto:rnarozny_(at)_splendid.de, http://www.splendid.de --- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive