Laisser le préfixe de votre base de données MySQL sur sa valeur par défaut, à savoir wp_, constitue un risque de sécurité pour votre installation WordPress. Si vous ne l’avez jamais changé, suivez donc ce tutoriel simple et rapide.

N.B : avant toute intervention dans votre base de données WordPress, faites une sauvegarde complète !

Étape n°1 – Édition du fichier wp-config.php

Situé à la racine de votre serveur FTP, le fichier wp-config.php abrite les identifiants de connexion à la base de données.

Ainsi, localisez la ligne suivante qui contient le préfixe des tables de la base :

$table_prefix  = 'wp_';

Il s’agit donc de modifier la valeur par défaut fixée sur wp_

Capture d'écran - Modification du préfixe de base dans le wp-config.php
Indiquez un préfixe différent que le classique wp_

Évidement, si celle-ci est déjà fixée sur une autre valeur, parcourez les autres tutoriels du site.

N’oubliez pas de sauvegarder le fichier modifié.

Etape n°2 – Changer le préfixe de l’ensemble de vos tables WordPress

Cette étape est de loin la plus fastidieuse et la plus risquée !

Il vous faut intervenir dans votre base à l’aide de phpMyAdmin ou de l’outil de gestion proposé par votre hébergeur. Connectez-vous donc sur l’administration de votre serveur pour y accéder.

Capture d'écran - Actions de renommage des tables SQL
Utilisez les commandes SQL pour un renommage de masse

Exécutez à présent les requêtes SQL suivantes en prenant soin d’indiquer votre nouveau préfixe :

Rename table wp_commentmeta to wplabo_commentmeta;
Rename table wp_comments to wplabo_comments;
Rename table wp_links to wplabo_links;
Rename table wp_options to wplabo_options;
Rename table wp_postmeta to wplabo_postmeta;
Rename table wp_posts to wplabo_posts;
Rename table wp_terms to wplabo_terms;
Rename table wp_term_relationships to wplabo_term_relationships;
Rename table wp_term_taxonomy to wplabo_term_taxonomy;
Rename table wp_usermeta to wplabo_usermeta;
Rename table wp_users to wplabo_users;

Étape n°3 – Modifications de certains tables de la base MySQL

Si vous en restez là, WordPress ne vous donnera plus les droits d’accès à votre administration. Vous obtiendrez alors, ce type d’erreur :

Capture d'écran - Message d'erreur de WordPress
Faisons en sorte d’obtenir les droits d’accès à votre administration WordPress

Adaptez ce qui suit avec votre nouveau préfixe !

Édition de la table wp_options

Il nous faut donc intervenir dans wp_options, recherchez donc la valeur wp_user_roles dans la colonne option_name et indiquez votre nouveau préfixe.

Bien entendu, le préfixe de la table sera différent suite à l’étape 2.

Capture d'écran - Recherche de la valeur wp_user_roles
Cette valeur est située à la ligne 96.
Capture d'écran - Modification de la valeur wp_user_roles
Remplacez le préfixe wp_ par celui que vous venez de définir

Édition de la table wp_usermeta

Changez à présent tout les anciens préfixes de la colonne meta_key au nombre de 5 dans mon cas.

Capture d'écran - Modification des valeurs de la colonne meta_key
Le nombre de champs à éditer peut varier en fonction de votre version de WordPress

Félicitations ! Nous voici arriver au terme de ce tutoriel qui vous aura montrer comment changer manuellement le préfixe de votre base de données WordPress. Votre site bénéficie à présent d’un niveau de sécurité accru contre les hackers.

 

70 commentaires

  1. Bon, j’avoue, j’avais quand même un peu d’appréhension pendant que je bidouillais la base MySQL mais tout va bien !
    Encore un tuto (très clair et accessible) qui me permet d’améliorer mon blog et de progresser.
    Merci.

  2. Merci pour le tuto.
    Je cherchai à faire en début de semaine mais je trouvai pas le champ pour renommer les tables sous 1&1.
    Là je pourrais le faire ce soir.

  3. Merci

    Je bloque a la dernière phases

    édition de la table wp_usermeta

    car les meta keys si je me trompe pas j’en trouve 41, je voudrais pas faire une erreur

    Quel est le champ a modifié si c’est bien sa
    merci

  4. Merci maintenant j’ai acées au back-office

    mais maintenant fatal error out of memory

    Suite a la tentative de mise a jour vers la nouvelle version

    est ce que c’est lier

    merci pour vos explication

    1. Aucune vu que ce paramètre peut être déterminé dès l’installation. Les développeurs utilisent une variable globale pour leur retourner le préfixe de la table de sorte que le préfixe est toujours le bon.

  5. Mon hebergeur c’est 1and1

    sinon si c’est la faute de l’hebergeur , j’ai plus cas me servire de ma sauvegarde Merci encore

  6. merci pour ce tuto

    j’ai lu ici et la, que dans un objectif de securité il est préférable de modifier certain parametres par defaut

    ca répond @ ce besoin parfaitement

    maintenant faire cette mise à jour est trop risquée vu mes compétences, je ferai attention à la prochaine installation de site

    merci

    Sebastien

  7. Bonjour,
    je cherche desesperement le moyen de gerer ma bdd. Via phpmyadmin ou autre chose. JE n’y arrive pas. J’ai les codes d’acces sr mon wp-config mais ca ne marche pas. aurais tu une idee stp. Oui je suis plus dans le topic mais on sait jamais.

    MErci d’avance.

    PS: c’est une base par defaut que j’ai je crois: define(‘DB_HOST’, ‘sql3.modules’);

  8. Bonjour, avant tout très beau site internet et bien complet !

    Alors voilà j’ai un petit problème…
    Avec le plugin WP-sécurity Scan quand je fais un scan il me trouve rien tout est ok niveau sécurité sauf pour le préfixe wp-
    Mais voilà le problème c’est quand je clique sur click here et bien j’ai une belle page avec un beau petit message : vous avez pas assez de permissions pour pouvoir y accéder (ou message similaire..)
    Donc je fais comment moi du coup ?
    Je suis l’admin du site et le seul alors franchement la je sais pas quoi faire lol

    Merci d’avance A+ les amis

  9. Une méthode brutale: après avoir changé le wp-config comme indiqué, sauver la base, l’éditer avec un éditeur, et faire un remplacer wp_ par xxx_
    Puis la réinsatller..
    J’ai faut?

    Merci pour tout

  10. Bonjour,

    Je n’ai pas suivi ce tuto car ai utilisé le plug in WP-SECURITY-SCAN qui le fait automatiquement et très bien. Par contre, je rencontre un problème lié au changement du préfixe dans l’une des fonctionnalités de mon thème dont le fichier php fait appel à ces tables. Le fait de changer le préfixe casse le fonctionnement de ce fichier et n’étant pas très à l’aise en php (j’ai fait des tentatives de remplacement infructueuses en local), je ne sais pas trop comment faire. Si tu vas sur mon site, il s’agit de la page « déjeuner sur-mesure » et c’est tout le contenu des menus qui ne s’affichent plus si je change le préfixe (seules les grandes rubriques s’affichent mais l’intérieur non). Si je t’envoie le fichier en question, pourrais-tu m’aider et m’expliquer comment faire pour modifier le code, stp ? Bien entendu j’ai demandé avant au créateur de mon thème mais qui n’est pas développeur et qui ne sait pas comment faire.
    merci beaucoup pour ton aide !

    1. En réalité, ce genre d’erreurs ne devrait pas subvenir dans la mesure où le préfixe ne doit jamais être codé en dur dans le thème. Il y a des variables pour cela.

      Pour autant, pourquoi vouloir changer à tout prix le préfixe ? OK, la sécurité est importante mais dans ce cas le changement n’est pas vraiment justifié… ou est-ce pour une autre raison ?

      Pour information, toute intervention fait l’objet d’une prestation payante.

  11. Bonjour,
    J’installe wordpress avec softaculous (dans mon cpanel), qui me laisse le choix avant l’installation de mettre un autre prefixe que wp_, puis-je le changer avant l’installation de wordpress ou bien la base de données ne sera pas reconnue par wordpress quand ce sera installé et il faudrai que je change les noms dans wp-confing.php et les noms de wp_options et wp_usermeta ?
    Merci de votre réponse.

    1. Attention à toutes ces solutions d’installation automatiques. Certaines systèmes ne permettent pas l’accès aux bases de données ou aux mises à jour. Méfiance donc ! D’autant plus que WordPress est vraiment très simple à installer soi-même.

      A priori, il n’y a aucun souci à ce que vous indiquiez votre propre préfixe.

  12. Merci pour ce résumé complet et juste : tout à bien fonctionné de mon côté.
    J’avais bien plus que 5 champs à reprendre dans la table WP_USERMETA mais pas de grande différence sinon.

    Bravo et merci !
    Thomas.

  13. Bonjour,
    Moi aussi, j’ai eu très peur en procédant à cette modification, car l’écran de mon PHPMyAdmin ne ressemblait pas aux captures d’écran jointes.
    A un moment, il m’a indiqué une « error » !!! J’ai fait un retour arrière à l’aide du navigateur, j’espère n’avoir rien abimé !!
    J’ai retrouvé mon tableau de bord d’administration et mon site qui semble fonctionner … mais je viens de voir que j’ai « perdu » mon favicon ! Si c’est le seul déga^t, ce n’est pas bien grave.

    Tout ça pour dire qu’il faut être très très prudent, et que ce serait bien de préciser (même si on s’en doute) qu’il faut valider les actions pour qu’elles soient effectives.
    Et ce serait bien de nous dire ce qu’il faut faire en cas de fausse manip ou comment revenir en arrière.

    1. La règle d’or : toujours faire une sauvegarde de sa base de données ! Après, je ne cache pas que ce type de manipulation est plutôt réservée à des utilisateurs avertis. Mais il faut bien apprendre un jour !

  14. En complément,

    quand on a déjà définit plusieurs utilisateurs dans sa table wp_usermeta on se retrouve avec un multiple (correspondant au nombre d’utilisateurs) du nombre d’enregistrements. Il peut alors être un peu fastidieux et source d’erreur de le faire manuellement.

    Donc si vous avez un peu d’habitude avec les requêtes MySQL vous pouvez modifier la colonne meta_key avec la requête suivante :

    update wp_usermeta set `meta_key` = concat(‘wplabo’,substr(`meta_key`,3)) where `meta_key` like ‘wp_%’

    J’ai repris wplabo le préfixe de l’excellent tuto d’Aurélien. La valeur 3 dans l’extraction(substr) de chaine correspond à la longeur de chaine de votre préfixe d’origine (ici wp_ soit une longueur de 3 caractères). Il faut donc penser à mettre la longeur de votre préfixe d’origine s’il ne s’agit par du wp_ par défaut.

  15. script pour modifier les préfix wp_ dnas la table option et usermeta :

    « UPDATE sec_options SET option_name = replace(option_name, ‘wp_’, ‘pref_’);
    UPDATE sec_options SET option_name = replace(option_name, ‘WP_’, ‘PREF_’);
    UPDATE sec_usermeta SET meta_key = replace(meta_key, ‘wp_’, ‘pref_’); »

  16. Merci beaucoup pour ce tuto.

    J’ai cependant une question : Dans la base de données on change les wp_ dans les key, mais je vois qu’il y a aussi des wp_ dans les values, est-ce qu’on doit aussi les changer ? Je vois aussi des _wp_.

    Merci.

  17. Moi, j’ai fais cette technique, (je l’ai sûrement mal faite), et ça m’a demandé de réinstaller wordpress, je l’ai fait et ça m’a littéralement réinitialisé mon site xD

  18. Bonjour,

    J’ai essayé de faire les manips ci-dessous, tout fonctionne correctement pour moi… sauf une seule chose.
    Lorsque je clic sur le titre d’un billet de mon blog, cela me redirige vers une page 404…

    Une idée ?

    Quand je passe la souris sur le lien du billet il indique en bas (en tant que lien) : http://www.nomdemonsite.com/monprefix

    Merci d’avance…

    1. Je ne saisis pas le rapport entre le changement de préfixe dans la base de données MySQL et le suffixe qui viendrait s’ajouter sur vos URLs… il ne faut pas confondre les 2.

      Si vous souhaitez modifier le répertoire d’installation de WordPress ou plus simplement modifier les URLs de votre site ce n’est pas le bon tutoriel.

  19. Merci Aurélien pour ce tuto que je vais tester.

    Cela marche bien exactement de la même manière si je suis encore en « local » (MAMP) ? J’aurais également aimé changer le nom de la BDD (je n’entre pas ds les détails du pourquoi), est-ce possible ? sans risques ou vaut-il mieux éviter ?

    Je vois bien comment changer le nom de la BDD ds le fichier wp-config (comme pour le préfixe des tables), mais deux questions : 1. est-ce possible de le faire aussi (ensuite) ds phpmyadmin (je n’ai pas vu où et comment cela pouvait se faire). 2. Faut-il mieux faire le choses en 2 temps ? d’abord changer nom BDD. Vérifier que tout roule. Puis changer nom du préfix des tables ?

    Merci pour ton aide !

  20. Aurélien merci pour ta réponse. j’ai suivi ta méthode à la lettre, en changeant uniquement le préfixe des tables (pas le nom de la bdd). Tout semble ok sauf que dans les « XX-usermeta » / meta-key -> « XX-capabilities » et « XX-user-level » sont doublées automatiquement qd je fais le changement de préfixe… (et avec le même contenu exactement). Si je supprime les doublons qui à priori n’ont pas lieu d’être, je n’ai plus accès à mon tableau de bord (droits). Quand je recommence l’opération mais sans supprimer les doublons, là tout fonctionne et j’ai bien accès à mon tableau de bord, sauf qu’avoir des doublons dans les meta-key ne doit pas être très normal non ? Si tu as une idée, welcome ! Sinon pour info j’ai bien sûr essayer de ré-importer aussi les tables avec le préfixe original, et aucun doublon ds les meta-key… Merci pour tes éventuelles pistes ou conseils. M.

  21. Pour ceux qui auraient le même pb que moi. J’ai recommencé à nouveau la manip. Cette fois – après motif des préfixes- j’ai supprimé en même temps et en les cochant les deux doublons (capabilities & user-level) qui avaient donc créé deux lignes supplémentaires sur le panneau général de la table « user-meta ». Et là çà a bien marché. Je n’ai donc plus de doublons et bien accès à mon tableau de bord. Donc tout va bien, mais par contre je ne sais toujours pas pourquoi ces deux données spécifiques se sont doublées à chaque fois que j’ai voulu en changer le préfixe… J’espère juste que cela ne créera pas de problèmes par la suite. Et si qqun a une explication, elle est la bienvenue j’imagine. Merci.

  22. Oups, j’ai fait toute la manip et voilà qu’en essayant de rentrer sur mon site, je suis renvoyé à l’installation de wordpress, comme si tout avait disparu… Y a-t-il une explication?? Guillaume

  23. Bonjour
    J’ai également effectué la manip sur un blog « test » mais je suis également renvoyée vers une nouvelle installation, de plus différentes erreurs apparaissent. A quoi cela peut-il être du?
    Merci

  24. bonjour j ai fait exactement tout ce ke vous avez demandé de faire pour changer le préfixe de la bases de bonnées mai je n arrive pas a accédé a ma partir administration je reçoit ce message Vous n’avez pas les droits suffisants pour accéder à cette page.

  25. oui l adresse URL de connexion est bien exact jusque sa m affiche la page de connexion lorsque je me logue on m affiche ce message Vous n’avez pas les droits suffisants pour accéder à cette page.

  26. le probleme est resolu j ai tout recommencé a zero mais cette fois en faissant les modification sur mon fichier avant de faire le chargement merci

  27. Hello !! J’ai essayé et tout bien suivi, sur mon localhoast en guise de test et une fois fini je ne pouvais plus rentrer dans le panneau d’administration :

    mes identifiant et mot de passe d’existaient plus même si ils étaient toujours présents dans dans phpmyadmin !

    J’ai tout essayé je n’ai oublié aucune étape et la derniere solution à été de faire marche arrière et de tout renommer en wp_ !

    Est ce parce que c’est en local que cela réagit ainsi ? Sinon j’avais également essayé avec un Pluggin pour un autre prefixe en guise de test également et ça prennait très bien, ceci dit j’aurais aimé me passer de pluggin et pouvoir le faire toute seule.

    Si tu as le temps de m’indiquer a quoi c’est possiblement dû ce serait gentil Merci d’avance !!

    Note : j’accédais à l’admin avec nomdusite/wp-admin

  28. Bonjour Aurélien

    J’avais suivi ce tuto il y a quelque temps pour un site, cela avait marché sans problème.

    J’ai voulu le faire pour un nouveau site mais j’ai tout planté, page blanche avec l’url et plus accès à l’admin wordpress. Comme je n’avais rien fait encore sur le site, j’ai supprimé mon module WordPress (via OVH) puis installé à nouveau. Le site est bien revenu, problème sur php admin je n’ai plus aucune base de donnée mysql.

    J’ai téléphoné à OVH, la base est apparemment bien présente, mais je ne la vois pas.

    As tu eu ce cas ? Comment retrouver ma base ?

    Merci d’avance
    David

  29. Tutoriel très bien fait ! J’ai toujours un petit creux au ventre lorsque je manipule des fichiers sensibles (malgré des sauvegardes préventives) et je suis soulagé de constater que rien de mal ne s’est produit après cette opération de sécurité. Encore merci !

  30. Merci pour ce chouette tuto! J’ai réussi à faire le changement rapidement sans trop de stress Par contre petite question, j’avais développé mon site en local donc j’ai déjà plusieurs plugins et donc quand j’ai utilisé les « rename », ca n’a pas renommé les tables crées par les pluggins (environ 25 tables). Que me conseillez-vous?

      1. Merci Aurélien pour cette réponse hyper rapide. Oui pas de souci pour utiliser phpmyadmin avec un script du genre: Rename table wp_users to wplabo_users;

        Mais en fait je me demande si je dois vraiment renommer les tables des plugins. Est-ce que le renommage ne risque pas de « tout casser »? Est-ce que c’est un problème d’avoir des tables avec des préfixes différents (wp pour certaines et wplabo pour d’autres?)

        Merci d’avance pour l’aide

          1. oki Aurélien, merci pour l’information. Je crains toujours que le renommage « casse » les plugins… est-ce que qqun a un retour d’expérience à ce sujet? Merci d’avance

  31. Bonjour Aurélien ! Vos podcast sont toujours pertinents, merci beaucoup je me sentirai plus en sécurité en ayant changé ces préfixes. Je veux vous mentionner que lors du changement (dans le phpMYadmin) chez mon hébergeur (Hostpapa) on peut cocher toutes les tables de données (au bas de celles-ci) et il y a un onglet sous lequel se trouvent 11 possibilités dont «remplacer le préfixe de table», ce qui donne des changements plus rapidement, (au cas où ça peut servir)

    Et SVP, j’aurais une question qui pourrait paraître «bête» un peu, je ne suis pas expert, mais est-il normal que dans mon FTP (Filezilla), les préfixes wp sont toujours là ? Et sinon, dois-je les changer eux aussi ? Merci beaucoup, je vous lis avec plaisir. Bonne route Monsieur ! Daniel

Laisser un commentaire