phpMyAdmin - les tables de WordPress

WordPress et MySQL

Cet article décrit comment utiliser une Base de Données MySQL pour faire fonctionner WordPress en utilisant l’outil d’administration de Base de Données  phpMyAdmin.

 Découvrir phpMyAdmin

phpMyAdmin est un outil permettant d’administrer une base de données MySQL.

Si votre site est connecté à internet via un hébergement, l’hébergeur doit fournir la documentation vous permettant d’administrer la Base de Données.

Avec WampServer, vous devez cliquer sur l’icône WampServer dans la barre des tâches, puis sur   phpMyAdmin  :

MySQL - accéder à phpMyAdmin
MySQL – accéder à phpMyAdmin

L’écran d’accueil de phpMyAdmin doit apparaître dans le navigateur :

MySQL - écran d'accueil de phpMyAdmin
MySQL – écran d’accueil de phpMyAdmin

 

Haut de page

Création de la base de données et des tables

La création d’une base de données s’effectue en cliquant dans phpMyAdmin sur  Nouvelle base de données  :

MySQL - créer une base de données
MySQL – créer une base de données

On saisit ensuite le nom de la nouvelle base de données :

MySQL - nom de la base créée
MySQL – nom de la base créée
MySQL - base de données créée
MySQL – base de données créée

On remarquera que phpMyAdmin se présente comme une série de pages HTML qui s’accèdent via un navigateur internet.

La procédure d’installation de WordPress a été décrite dans des articles précédents  :

Cette procédure d’installation crée des tables dans une Base de Données dont on doit fournir les informations de connexion :

WampServer - paramètres de la Base de Données WordPress
WampServer – paramètres de la Base de Données WordPress

En mode site unique (à la différence du multi-sites dans lequel une installation de WordPress gère plusieurs sites), WordPress crée 11 tables dans la base de données :

phpMyAdmin - les tables de WordPress
phpMyAdmin – les tables de WordPress

Les paramètres de connexion à la Base de Données sont sauvegardés dans le fichier  config.php  situé à la racine de l’installation de WordPress :

WordPress - emplacement de config_php
WordPress – emplacement de config_php
// ** Réglages MySQL - Votre hébergeur doit vous fournir ces informations. ** //
/** Nom de la base de données de WordPress. */
define('DB_NAME', 'wp_paris');

/** Utilisateur de la base de données MySQL. */
define('DB_USER', 'root');

/** Mot de passe de la base de données MySQL. */
define('DB_PASSWORD', '');

/** Adresse de l'hébergement MySQL. */
define('DB_HOST', 'localhost');

/** Jeu de caractères à utiliser par la base de données lors de la création des tables. */
define('DB_CHARSET', 'utf8');

/**
 * Préfixe de base de données pour les tables de WordPress.
 *
 * Vous pouvez installer plusieurs WordPress sur une seule base de données
 * si vous leur donnez chacune un préfixe unique. 
 * N'utilisez que des chiffres, des lettres non-accentuées, et des caractères soulignés!
 */
$table_prefix  = 'wcp2015_';
Paramétrage de la Base de Données dans config.php
Haut de page

Modifier le contenu d’une table : exemple l’article de bienvenue

Lors de l’installation de WordPress, un article de bienvenue est créé :

phpMyAdmin - article WordPress de bienvenue
phpMyAdmin – article WordPress de bienvenue

 

Le contenu des articles se trouvent dans la table « posts »  donc  wcp2015_posts  dans notre exemple puisque nous avons choisi le préfixe de table « wcp2015_ » lors de l’installation de WordPress. Pour accéder au contenu de la table, nous pouvons cliquer sur le nom de la table ou sur  Afficher  :

phpMyAdmin - afficher un poste dans une table
phpMyAdmin – afficher un poste dans une table

On trouve l’article de bienvenue dans le premier enregistrement de la table :

phpMyAdmin - retrouver l'article de bienvenue dans la table des posts
phpMyAdmin – retrouver l’article de bienvenue dans la table des posts

Pour modifier l’article, il faut cliquer sur  Modifier  ou double cliquer directement sur le contenu (post_content); nous ajoutons du texte au champ post_content :

phpMyAdmin - Modifier un article
phpMyAdmin – Modifier un article
phpMyAdmin - modifier le texte de l'article dans la BDD
phpMyAdmin – modifier le texte de l’article dans la BDD
phpMyAdmin - modifier un champ en double cliquant sur lui
phpMyAdmin – modifier un champ en double cliquant sur lui

On valide la modification en tapant un retour chariot ou en se rendant en bas de page  (exécution de la requête SQL) :

phpMyAdmin - lancer une requête de modification
phpMyAdmin – lancer une requête de modification

Une fois la requête exécutée, on peut la lire en haut de page  :

UPDATE `wp_paris`.`wcp2015_posts` SET `post_content` = ‘Bienvenue dans WordPress. Ceci est votre premier article. Modifiez-le ou supprimez-le, puis lancez-vous ! ==> je modifie le texte’ WHERE `wcp2015_posts`.`ID` = 1;

En retournant sur le site, on peut constater que l’article a été modifié :

phpMyAdmin - article modifié sur le site
phpMyAdmin – article modifié sur le site

 

Haut de page

Modifier le mot de passe d’un utilisateur

En cas d’oubli, voire de piratage, il est possible de modifier le mot de passe de connexion d’un utilisateur directement dans la Base de Données.

On sélectionne la table « users », soit  wcp2015_users  dans notre exemple ( nous avons choisi le préfixe de tables “wcp_2015” ) :

phpMyAdmin - gérer les utilisateurs
phpMyAdmin – gérer les utilisateurs

Cliquer ensuite sur  Modifier  (ne pas double-cliquer directement dans le champ mot de passe ) :

phpMyAdmin - modifier un mot de passe utilisateur
phpMyAdmin – modifier un mot de passe utilisateur

Pour le champ « user_pass » sélectionner la fonction   MD5   dans la liste déroulante :

phpMyAdmin - utiliser une fonction sur un champ
phpMyAdmin – utiliser une fonction sur un champ

Saisir le nouveau mot de passe ( mdp1  dans notre exemple) :

phpMyAdmin - nouveau mot de passe
phpMyAdmin – nouveau mot de passe

Aller en bas de page et cliquer sur  Exécuter  :

phpMyAdmin - exécuter requête modifiant le mot de passe
phpMyAdmin – exécuter requête modifiant le mot de passe

Après exécution, il est possible de lire la requête :

UPDATE `wp_paris`.`wcp2015_users` SET `user_pass` = MD5('mdp1') WHERE `wcp2015_users`.`ID` = 1;

On remarquera que WordPress ne stocke pas le mot de passe, mais le résultat de la fonction MD5 appliquée au mot de passe saisi :

phpMyAdmin - résultat du MD5 sur mot de passe
phpMyAdmin – résultat du MD5 sur mot de passe

Se reconnecter au site, permet de vérifier que le nouveau mot de passe a bien été pris en compte :

phpMyAdmin - se connecter avec un nouveau mot de passe
phpMyAdmin – se connecter avec un nouveau mot de passe
phpMyAdmin - connecté avec un nouveau mot de passe
phpMyAdmin – connecté avec un nouveau mot de passe

 

Haut de page

Sauvegarder (exporter) la Base de Données

La sauvegarde de la Base de Données (structure et contenu) est une opération à effectuer régulièrement et toujours avant de modifier la BdD via phpMyAdmin. Des extensions permettent d’automatiser le processus, mais il est utile de savoir le faire « manuellement », d’autant que c’est très simple.

Dans phpMyAdmin, sélectionner la Base de Données à exporter, puis cliquer sur  Exporter  :

MySQL - sélectionner une Base de Données
MySQL – sélectionner une Base de Données
Exporter BdB
Exporter BdB

phpMyAdmin propose des options d’export. Nous ne les décrirons pas, nous signalerons seulement qu’il est possible de sélectionner les tables à exporter :

Méthode rapide d'exportation
Méthode rapide d’exportation

Le fichier créé est une succession d’instructions SQL permettant de recréer les tables si nécessaires et de mettre à jour leur contenu :

Contenu du fichier d'export
Contenu du fichier d’export

A noter qu’il est possible de modifier le fichier d’export avec un éditeur de texte, par exemple pour modifier le préfixe de tables, avant de réimporter les tables. On peut alors obtenir une copie modifiée d’une base WordPress, mais mieux vaut savoir ce que l’on fait !

Haut de page

Importer une Base de Données

Sélectionner la Base de Données (vide ou à mettre à jour) et cliquer sur  Importer  :

Importer des tables
Importer des tables

A noter qu’on ne peut importer que dans une Base de Données existante. Si la base cible n’existe pas, il faut la créer.

Localiser le fichier à importer :

Localiser le fichier à importer
Localiser le fichier à importer
Sélectionner le fichier à importer
Sélectionner le fichier à importer

Exécuter la requête d’importation :

Lancer l'importation
Lancer l’importation

phpMyAdmin confirme l’exécution de la requête :

Résultat de l'import
Résultat de l’import

Sélectionner la Base de Données pour vérifier que les 11 tables WordPress ont été importées :

Vérification de la présence des tables importées
Vérification de la présence des tables importées
Haut de page

Modifier le préfixe des tables WordPress

Par défaut, le préfixe des tables est « wp_ ». Il n’est pas conseillé de le conserver, car il est le premier testé par les pirates du web. Nous allons voir qu’il est possible de le changer, même après avoir installé WordPress.

Comme toujours, il faut faire une sauvegarde avant de manipuler la Base de Données.

Se rendre dans  phpMyAdmin , sélectionner les tables dont on veut modifier le préfixe et sélectionner  Remplacer le préfixe de table  dans le menu situé en dessous de la liste des tables :

MySQL - sélection des tables pour modifier le préfixe
MySQL – sélection des tables pour modifier le préfixe

Saisir le préfixe existant et le préfixe de remplacement :

MySQL - indiquer les préfixes
MySQL – indiquer les préfixes

On peut immédiatement constater que les préfixes de table ont été modifiés :

MySQL - préfixe des tables modifié
MySQL – préfixe des tables modifié

Le préfixe de table déclaré dans le fichier  wp-config.php  doit être mis à jour :

/**
* Préfixe de base de données pour les tables de WordPress.
*
* Vous pouvez installer plusieurs WordPress sur une seule base de données
* si vous leur donnez chacune un préfixe unique. 
* N'utilisez que des chiffres, des lettres non-accentuées, et des caractères soulignés!
*/
$table_prefix  = 'pfxdemo_';
Modification du préfixe de table dans wp-config.php

Vous pouvez vérifier que vous accédez à votre site côté visiteur. En revanche, si vous essayez de vous connecter à l’administration, vous vous heurtez au message suivant :

MySQL - Administration inaccessible
MySQL – Administration inaccessible

Le problème vient du fait que le nom de table apparaît dans la table des options pour la gestion des rôles attribués aux utilisateurs.

Sélectionner la table des options (« pfxdemo_options dans notre exemple), et rechercher l’option dont le nom contient l’ancien préfixe suivi de  » user_roles » (wp_user_roles dans notre exemple) :

MySQL - modifier la table des options
MySQL – modifier la table des options

Double-cliquer sur « wp_user_roles » et saisir le nouveau préfixe :

MySQL - table des options modifiée
MySQL – table des options modifiée

Sélectionner ensuite la table des user_meta (« pfxdemo_usermeta dans notre exemple), et rechercher les « meta key » commençant avec l’ancien préfixe (wp_… dans notre exemple :

MySQL - modifier la table des user meta
MySQL – modifier la table des user meta

Double-cliquer sur chacune des meta_key à modifier, et saisir le nouveau préfixe :

MySQL - table des user meta modifiée
MySQL – table des user meta modifiée

À partir de ce moment, WordPress fonctionne avec un nouveau préfixe pour les tables de la Base de Données. Il se peut qu’il y ait quelques soucis avec des thèmes ou des plugins (par exemple, si ceux-ci utilisent l’adresse physique de l’installation WordPress). Une étude attentive avec modification de certaines données de la table des options doit vous permettre de résoudre ces difficultés résiduelles.

Utilisation de requêtes SQL

Les modifications réalisées directement dans les tables, peuvent être réalisées au moyen de requêtes SQL.

Exemple de requête permettant de modifier le préfixe de tables :

MySQL - exécuter une requête pour renommer les tables
MySQL – exécuter une requête pour renommer les tables
RENAME TABLE `demo_commentmeta` TO `demo2_commentmeta`;
RENAME TABLE `demo_comments` TO `demo2_comments`;
RENAME TABLE `demo_links` TO `demo2_links`;
RENAME TABLE `demo_options` TO `demo2_options`;
RENAME TABLE `demo_postmeta` TO `demo2_postmeta`;
RENAME TABLE `demo_posts` TO `demo2_posts`;
RENAME TABLE `demo_terms` TO `demo2_terms`;
RENAME TABLE `demo_term_relationships` TO `demo2_term_relationships`;
RENAME TABLE `demo_term_taxonomy` TO `demo2_term_taxonomy`;
RENAME TABLE `demo_usermeta` TO `demo2_usermeta`;
RENAME TABLE `demo_users` TO `demo2_users`;
MySQL - requête pour modifier le préfixe de table

En cas d’installation multi-sites, voici une requête permettant de modifier le préfixe des tables spécifiques au multi-sites :

RENAME TABLE `demo_blogs` TO `demo2_blogs`;
RENAME TABLE `demo_blog_versions` TO `demo2_blog_versions`;
RENAME TABLE `demo_registration_log` TO `demo2_registration_log`;
RENAME TABLE `demo_signups` TO `demo2_signups`;
RENAME TABLE `demo_site` TO `demo2_site`;
RENAME TABLE `demo_sitecategories` TO `demo2_sitecategories`;
RENAME TABLE `demo_sitemeta` TO `demo2_sitemeta`;
MySQL - requête pour modifier le préfixe de table en multi-sites

Exemple de requête permettant de modifier la table des options :

UPDATE `demo2_options`
SET `option_name` = REPLACE( option_name, 'demo_', 'demo2_' )
WHERE `option_name` LIKE 'demo_%';
MySQL - requête pour modifier la table des options

Exemple de requête permettant de modifier la table des user_meta :

UPDATE `demo2_usermeta`
SET `meta_key` = REPLACE( meta_key, 'demo_', 'demo2_')
WHERE `meta_key` LIKE 'demo_%';
MySQL - requête pour modifier la table user_meta
Haut de page

Optimiser la Base de Données

Avec le temps et les créations / suppressions d’enregistrements, toute base perd en efficacité et les temps de réponse s’en ressentent. phpMyAdmin peut se charger de faire le ménage.

Comme toujours, il faut faire une sauvegarde avant de manipuler la Base de Données.

Dans phpMyAdmin, sélectionner la base à optimiser et dessous la liste des tables, cliquer sur  Cocher tables avec pertes  :

phpMyAdmin - sélectionner les tables à optimiser
phpMyAdmin – sélectionner les tables à optimiser

Sélectionner ensuite  Optimiser la table :

phpMyAdmin - optimiser les tables sélectionnées
phpMyAdmin – optimiser les tables sélectionnées

phpMyAdmin synthétise le résultat de l’opération :

phpMyAdmin - tables optimisées
phpMyAdmin – tables optimisées

On remarquera que phpMyAdmin ne propose plus de sélectionner les tables avec pertes :

phpMyAdmin - BdD optimisée
phpMyAdmin – BdD optimisée

Laisser un commentaire

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