Si vous avez changé l’url d’un site – comme par exemple une migration de WordPress d’un nom de domaine à un autre – et que vous aviez fait plein de jolis liens dans votre blog d’un post à un autre, vous avez peut être envie de chercher et de remplacer les occurences de l’ancienne URL dans la base de données MySQL ?
La procédure est assez simple même si je ne sais pas comment créer une commande vérifiant toutes les tables …
En gros un exemple de code serait :
UPDATE wp_posts SET post_content = replace( post_content,'blog.gonzaguedambricourt.com','gonzague.me')
La commande va donc chercher dans la table wp_posts les occurences de blog.gonzaguedambricourt.com et les remplacer par gonzague.me
Utilisez un outil comme phpMyAdmin pour faire une recherche du terme à remplacer dans toute votre base et ensuite adaptez le code pour faire les remplacements là où cela s’impose :)
Addendum :
Je viens de mettre de côté quelques unes des requêtes SQL à exécuter dans le cas de la migration d’un blog sous WordPress d’un domaine à un autre. L’idée de ces commandes est donc de remplacer l’ancienne adresse par la nouvelle. Si le nom de domaine est similaire ( par exemple de emmanueldetaillac.fr à blog.emmanueldetaillac.fr ) exécutez ces commandes *avant* d’aller modifier quoi que ce soit sur votre nouvelle installation.
Les commandes ( à exécuter une par une – faites un backup avant ) :
UPDATE wp_posts SET post_content = replace( post_content,'emmanueldetaillac.fr','blog.emmanueldetaillac.fr') UPDATE wp_posts SET guid = replace( guid,'blog.blog.emmanueldetaillac.fr','blog.emmanueldetaillac.fr') UPDATE wp_postmeta SET meta_value = replace( meta_value,'emmanueldetaillac.fr','blog.emmanueldetaillac.fr') UPDATE wp_options SET option_value = replace( option_value,'emmanueldetaillac.fr','blog.emmanueldetaillac.fr'); UPDATE wp_comments SET comment_author_url = replace( comment_author_url,'emmanueldetaillac.fr','blog.emmanueldetaillac.fr'); UPDATE wp_comments SET comment_author_url = replace( comment_author_url,'emmanueldetaillac.fr','blog.emmanueldetaillac.fr'); UPDATE wp_comments SET comment_content = replace( comment_content,'emmanueldetaillac.fr','blog.emmanueldetaillac.fr');
Grâce à cet ensemble de requêtes, vous allez mettre à jour les liens dans vos posts, les adresses des fichiers (images etc), votre url dans vos commentaires, etc.
4 réponses sur « Rechercher et remplacer dans MySQL »
Merci pour cette information, vous venez de me tirer une belle épine du pied :)
Merci infiniment, cela fait une semaine que je ne comprenais pas pourquoi je n’avais plus de CSS sur mon wordpress, pourquoi celui-ci mettais plusieurs secondes à charger, et après avoir trouvé la raison, que je m’arrachais les cheveux à le faire manuellement…
Favoris !
Bonjour,
J’ai le mm probleme mais avec Moodle,
comment je peux adapter votre requete a moodle??
Merci pour l’info, après en avoir testé plusieurs c’est celui qui m’a permis de poursuivre sereinement l’installation (transfert) de mon blog.