J’ai donc décidé de désinstaller YARPP (le « yet another related posts plugin » pour WordPress), et de convertir ma table wp_posts de MyISAM en InnoDB.
Bien sûr, quand j’ai fait la conversion MyISAM -> InnoDB, j’ai eu une erreur de myPhpAdmin :
The used table type doesn’t support FULLTEXT indexes
Pas inattendu… les versions de MySQL < 5.6.4 ne supportent pas FULLTEXT dans InnoDB, donc je savais que je devais laisser tomber les index FULLTEXT mais je ne savais pas trop comment. Et il a fallu un certain temps pour trouver la solution. Mais la voici :
1) Lancez la requête suivante pour obtenir une liste de vos tables :
SHOW CREATE TABLE wp_posts
(si vous n’avez pas utilisé le préfixe de table par défaut de WordPress ou si vous ne faites pas cela pour WordPress, remplacez wp_posts par… la table avec laquelle vous avez un problème)
2) Il vous montrera une liste des tableaux. Vous cherchez quelque chose comme ça :
Vous pouvez voir la partie FULLTEXT – les noms des clés d’index sont yarpp_title et yarpp_content dans ce cas.
3) Maintenant pour déposer ces clés FULLTEXT, les requêtes suivantes :
ALTER TABLE wp_posts DROP INDEX yarpp_title;
ALTER TABLE wp_posts DROP INDEX yarpp_content;
Je les ai faites une à la fois. Évidemment, si vous n’êtes pas à 100% dans le même bateau que moi, remplacez wp_posts par le nom de votre table, et yarpp_title / yarpp_content par ce qui apparaît dans vos résultats.
4) Passionnant !
En supposant que vous vous soyez occupé de toutes les clés FULLTEXT, les éléments suivants devraient permettre de convertir la table en InnoDB dès maintenant :
ALTER TABLE wp_posts ENGINE=InnoDB;
(en supposant encore une fois que c’est la table wp_posts que vous convertissez – si ce n’est pas le cas, utilisez le nom de la table que vous convertissez)
…et, c’est fait !
J'ai dû changer le type de stockage de ma base de données IP.board de MyISAM à InnoDB et cette méthode a fonctionné pour moi.