Modifier le préfixe de votre base de données WordPress après installation

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.

 

87 commentaires

  1. LucilleAnne

    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. Gandalf81

    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. pat

    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. pat

    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

  5. billboc

    bonjour ,
    y a t-il des manip a refaire lors des mises à jour WP ou de certains plugin ?
    merci!

    1. Aurélien Denis auteur de l’article

      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.

  6. pat

    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

  7. informatique Grenoble

    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

  8. Ninni

    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’);

    1. Aurélien Denis auteur de l’article

      Merci bien pour l’info !

      Par contre à l’avenir, merci d’indiquer un pseudo qui ne corresponde pas au nom du site car ces commentaires finissent généralement dans le spam.

  9. Antoine

    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

  10. Jeremy

    Merci pour ton aide.

    Les captures d’écran sont vraiment utiles dans une opération aussi délicate ;).

  11. Licioula

    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

  12. Liloute

    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. Aurélien Denis auteur de l’article

      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.

  13. Roxelane

    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. Aurélien Denis auteur de l’article

      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.

  14. Thomas Malbaux

    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.

  15. kalitcho

    bravo, mais mes faibles connaissances en php, m’ont fait préférer le plugin de philippe
    cordialement

  16. Flobogo

    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. Aurélien Denis auteur de l’article

      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 !

  17. kzrdt

    Merci pour cette petite astuce, j’avais changé tout cela à la main en oubliant de renommer les clés dans la table usermeta.

  18. manooweb

    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.

  19. moi

    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_’); »

  20. Riric

    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.

  21. Sébastien

    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

  22. Seb

    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. Aurélien Denis auteur de l’article

      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.

  23. Marie

    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 !

  24. Marie

    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.

  25. Marie

    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.

  26. guillaume

    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

  27. karamelle

    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

  28. lavi

    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.

  29. lavi

    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.

  30. lavi

    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

    1. warda

      ESt ce que on peut changer le nom de la table je veut une réponse rapide s’il vous plais et merciii

  31. JuSwap

    Merci beaucoup pour ce tuto qui m’a permis de me dépatouiller !

    Excellent site, contenu de qualité, jolie boulot continus comme ça !

  32. Cécile

    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

  33. Stef

    Attention, je ne comprend pas l’étape 3 : wp_options ne devrait il pas s’appeler wplabo_options suite à l’étape 2 ?

    1. Aurélien Denis auteur de l’article

      Tout à fait ! Il faut ajuster en fonction du renommage effectué. Je vais apporter une précision dans le billet pour être plus clair.

  34. David

    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

  35. Mundi

    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 !

  36. Marion

    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. Aurélien Denis auteur de l’article

      Bonjour Marion, il faudrait utiliser phpMyAdmin pour renommer les tables via une requête ou bien une par une si cela vous semble trop compliqué.

      1. Marion

        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. Marion

            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

  37. Daniel Lapierre

    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

  38. Jean

    Bonjour!

    Est-ce que l’utilisation de ce script SQL fonctionne? Je l’ai trouvé sur internet mais je ne veux pas me rater et faire un backup…

    UPDATE `wp_new_name_options` SET `option_name`=REPLACE(`option_name`,’wp_’,’wp_newname_’) WHERE `option_name` LIKE ‘%wp_%’;

    UPDATE `wp_new_name_usermeta` SET `meta_key`=REPLACE(`meta_key`,’wp_’,’wp_newname_’) WHERE `meta_key` LIKE ‘%wp_%’;

    Merci d’avance

    1. Jean

      dans la partie Update j’ai mis un underscore en trop « newname » et non pas « new_name », mais sinon ma question reste valable

  39. Mangotree Studios

    Opération réussie ! J’avoue que j’ai pour habitude de changer le préfixe dès l’installation de WordPress mais j’ai eu besoin de modifier la base de données d’un client et il fallait trouver le moyen de changer le préfixe pour des raisons de sécurité évidentes! Merci donc pour ce tuto !

    1. Aurélien Denis auteur de l’article

      Il vous faut restaurer votre base de données et remettre le fichier wp-config.php d’origine. Préférez la méthode plugin si vous n’y parvenez pas.

  40. Ben

    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

  41. Kobat

    Bonjour,

    J’ai changé le préfixe des tables de ma base de donnée via le plugin WordPress Security Scan, ça a bien fonctionné. Par contre, j’ai fait la bêtise d’éditer le fichier wp-config.php (qui n’avait pas été modifié). J’ai changé la ligne ‘wp_’ en ‘newprefixe_’ par exemple. Maintenant, mon site ne s’affiche plus. Que se soit en tant qu’utilisateur ou en tant qu’admin, voici la page qui apparait : http://bankut.fr/

    Est-ce que vous auriez une solution à ce problème ? J’ai l’impression d’avoir fait quelque chose d’irréversible…

    PS : j’ai fait une sauvegarde de ma base de donnée depuis phpMyAdmin et j’en fait régulièrement depuis le plugin WP Database Backup.

    Merci pour votre aide !

Les commentaires sont fermés.