Ich habe ein Problem mit einer InnoDB (Tabelle war ursprünglich MyISAM, aber konvertiert es zu InndoB vor einiger Zeit) Tabelle; Ich versuche, diese Abfrage ausführen:
SELECT
posts.id,
posts.post_title
FROM
rss_posts AS posts
INNER JOIN rss_feeds AS feeds ON posts.blog_id=feeds.id
WHERE
feeds.blog_language=1
ORDER BY
posts.post_date_db DESC
LIMIT
10;
Ich erhalte diesen Fehler:
Query : SELECT posts.id,posts.post_title FROM rss_posts AS posts INNER JOIN vw_rss_feeds AS feeds ON posts.blog_id=feeds.id WHER...
Error Code : 126
Incorrect key file for table '/tmp/#sql_7375_0.MYI'; try to repair it
Ich kann die betroffenen Tabellen nicht reparieren, aber ich habe beide Tabellen mit einem CHECK überprüft und sie scheinen in Ordnung zu sein. Ich habe auch eine OPTIMIZE auf beide Tabellen & ALSO wieder aufgebaut die Tabellen, indem Sie die unten.
INSERT INTO new_table SELECT * FROM old_table;
Ich habe dann die neue Tabelle in die alte Tabelle name..... umbenannt, aber ich habe das Problem immer noch.
Um herauszufinden, welche Tabelle das Problem verursacht hat, habe ich den Code in der Abfrage entfernt, der auf die Tabelle "rss_feeds" verweist (....), so dass die Abfrage jetzt wie folgt aussieht
SELECT
posts.id,
posts.post_title
FROM
rss_posts AS posts
ORDER BY
posts.post_date_db DESC
LIMIT
10;
Das hat funktioniert.
Das Problem hat also mit der Tabelle rss_feeds zu tun.
Also dachte ich mir, ich würde die Tabelle zurück nach MyISAM konvertieren und eine Reparatur durchführen und dann zurück nach InnoDB konvertieren..... das funktionierte vorübergehend, es war wieder normal.... dann brach es wieder..... reparierte es wieder, brach wieder.... jetzt scheint die Reparatur überhaupt nicht zu funktionieren.
Nun, ich weiß, ich weiß...... Ich habe bereits bei Google nach diesem Problem gesucht...... Ich habe festgestellt, dass das Problem in den allermeisten Fällen darin besteht, dass nicht genug Platz im MySQL-Temp-Verzeichnis vorhanden ist...., aber ich habe den Host bereits dazu gebracht, das Temp-Verzeichnis in ein Verzeichnis mit viel mehr Platz zu ändern, und das Problem besteht immer noch.
Ich denke, der HOST ist schuld und es ist immer noch ein Problem mit dem temporären Verzeichnis; warum? Denn nachdem ich es wieder zum Laufen gebracht habe, habe ich wieder angefangen, Daten zur Tabelle rss_posts hinzuzufügen und dadurch wurde der JOIN größer und MySQL ging wieder der Platz aus.... was denken Sie?