Jouons avec la base de données du blog

Aujourd’hui, j’ai essayé d’alléger un peu la base de données du blog en entrant directement, prudemment et méticuleusement dans MySQL pour y effectuer quelques requêtes de nettoyage.

BdDSQL

C’est assez intrigant, mais ça a fonctionné, et j’ai allégé la base d’un petit quart –en supprimant notamment toutes les lignes de code liées à l’antispam des commentaires : il y en avait 1602, mais également les quelques 2200 lignes liées aux « brouillons », puisque WordPress effectue  automatiquement, puis périodiquement, une sauvegarde automatique de chaque message publié dès lors qu’on commence à le rédiger, et en garde une trace dans la base de données-. Cela étant, je n’y retournerai pas trop souvent, cela n’a rien de convivial !

16 réponses sur “Jouons avec la base de données du blog”

  1. Tiens, c’est vrai, je me suis toujours demandé comment virer tous ces «brouillons» ! En même temps, ça m’a sauvé la mise oui fois ou deux quand j’ai voulu modifier un article, et que j’ai par maladresse effacer le contenu de l’article. Et vu la complexité quand même de MySql, je ne m’y risquerais pas sans moult précautions. Et en plus, je ne suis même pas certain, au moment d’écrire ce commentaire de savoir comment y retourner ! 🙁

    Pour l’avoir beaucoup fouillée, cette Base MySql quand j’ai eu mon problème d’accès à l’admin du blog, je confirme, c’est loin d’être « user friendly » !

  2. Tu entres dans phpMyAdmin et dans l’onglet SQL, tu copies-colles :
    DELETE a,b,c
    FROM wp_posts a
    LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
    LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
    WHERE a.post_type = ‘revision’;

    Et voilà, le tour est joué !

    1. Je vais tester ça… quand j’aurais pu réussir à me souvenir de mon accès à la base de donnée ! Parce que là, c’est la trou de mémoire ! Impossible de m’y connecter ! Je ne sais plus ! 🙁
      Et pourtant, j’y suis allé un paquet de fois lors de mon souci avec le blog ! Bref, c’est plutôt embêtant !

  3. Tu te connectes à OVH
    Dans la nouvelle interface :
    • tu vas dans la barre de navigation de gauche
    • tu cliques sur hébergement, puis sur le nom de ton blog
    • dans la fenêtre qui s’ouvre, tu cliques sur l’onglet « Base de donnée »
    • dans la ligne de ta base de données, tu cliques sur la petite icône des paramètres et tu choisis « Accéder à phpMyAdmin »
    • dans phpMyAdmin, tu vas sur l’onglet SQL, et tu saisis les requêtes dans la zone de saisie, puis tu les exécutes, et le tour est joué !

    1. C’est ce que je fais !
      Le souci, c’est que la base de donnée qui s’ouvre avec cette méthode n’est pas la bonne ! J’avais eu le même problème lors de l’incident de cet été ! J’ai bien les bons identifiants et mot de passe (retrouvé tout à l’heure), mais le passage par l’interface OVH ne pointe pas vers la bonne base de données ! Bon, pas grave, je vais finir par me souvenir comment j’avais fait !

  4. Bon, je viens de tenter de faire fonctionner ton script et ça ne marche pas !

    Voilà le message d’erreur qui s’affiche en dernière ligne :

    DELETE a,b,c
    FROM wp_posts a
    LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
    LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
    WHERE a.post_type = ‘revision’
    MySQL a répondu: Documentation

    #1054 – Unknown column ‘‘revision’’ in ‘where clause’

    1. Pourtant, j’ai fait un copier/coller de

      DELETE a,b,c
      FROM wp_posts a
      LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
      LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
      WHERE a.post_type = ‘revision’;

      Et je n’ai pas oublié le ;
      Mais en effet, dans le message d’erreur il n’y a pas le ;
      Bizarre !

      Ce qui m’interpelle, c’est aussi :
      #1054 – Unknown column ‘‘revision’’ in ‘where clause’

      le Unknown column ? Et les lettres « ésotériques » dans la ligne d’erreur ?

  5. Essaie de recopier le code et de le coller dans TextEdit puis de le transformer en texte brut, tu verras bien si des gimmicks apparaissent 😉 Si oui, supprime-les et recopie le code obtenu avant de le coller dans phpMyAdmin

    1. Bon, en texte brut tout est ok

      DELETE a,b,c
      FROM wp_posts a
      LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
      LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
      WHERE a.post_type = ‘revision’;

      Mais même message d’erreur !
      Bon, pas grave, je vais chercher un peu, il n’y a pas d’urgence, même si une petite purge de la base ne ferait pas de mal.

      Petite question, ça ne serait pas plutôt post_name ? (à la place de post_type ?)

    1. Oui, j’ai bien vu en regardant un peu dans la base de donnée.

      Mais, bon, le script ne marche pas ! 🙁

      Sinon, j’ai de nouveau mon problème d’upload et de dossier temporaire manquant ! problème apparu hier puis résolu et de nouveau présent depuis le début de l’après-midi ! Tout le reste fonctionne sauf l’upload de média, les mise à jours de plugins et de thème ! Et à mon avis, c’est un problème de serveur OVH !

  6. Je viens de refaire le script en le tapant directement :

    DELETE a,b,c
    FROM wp_posts a
    LEFT JOIN wp_term_relationships b ON (a.ID=c.object_id)
    LEFT JOIN wp_postmeta c ON (a.ID=c.post_id)
    WHERE a.post_type=’révision’;

    et j’ai ce message d’erreur ensuite :

    Erreur
    Requête SQL :

    DELETE a,b,c
    FROM wp_posts a
    LEFT JOIN wp_term_relationships b ON (a.ID=c.object_id)
    LEFT JOIN wp_postmeta c ON (a.ID=c.post_id)
    WHERE a.post_type=’revision’
    MySQL a répondu: Documentation

    #1054 – Unknown column ‘c.object_id’ in ‘on clause’

    La dernière ligne est différente de la première fois, et il n’y a plus (encore) le ;

    D’ou peut venir le problème ?

  7. Hourra !

    J’ai réussi, déjà en le tapant directement (et pas un copier/coller) et surtout en rectifiant ma petite erreur (c.object alors qu’il fallait écrire b.object)
    Résultat : 4017 lignes supprimées !

    Ouf ! Merci !

    Bon, ça n’a pas résolu mon problème d’upload !

Répondre à Diablotin Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.