PhpBB Lab Académie

Rechercher dans ce cours

Sauvegarder, restaurer et mettre à jour son forum phpBB

Auteur : phpBB-Lab. Date de cette version : jeu. 17 sept. 2026 12:12.

Restaurer la base dans une destination indépendante

Objectif de la leçon

Créer une base et un compte SQL propres au clone, puis importer les données de S1 sans écrire dans la base du forum d’origine.

Explications

Retrouver une sauvegarde sans remplacer l’original

Nous avons conservé S1 : les fichiers et la base du même forum, copiés pendant une période sans écriture. Nous allons maintenant reconstituer cet état à côté du forum d’origine. Cette seconde installation s’appelle un clone. Elle utilisera les mêmes logiciels et les mêmes contenus de départ, mais une autre base, un autre compte SQL et un autre dossier. Une modification du clone devra rester dans le clone.

Cette leçon prépare seulement sa base. Ne créez pas encore de raccourci pour visiter le futur forum et ne lancez pas l’installateur de phpBB. Une restauration réutilise les tables existantes dans la sauvegarde ; une installation neuve en créerait d’autres. Les fichiers arriveront à la prochaine leçon, après adaptation de leur configuration.

Trois noms à distinguer

Le forum d’origine utilise la base phpbb_ecole et le compte SQL phpbb_ecole. Sa copie utilisera la base phpbb_ecole_restauration et un nouveau compte SQL également nommé phpbb_ecole_restauration. La ressemblance de ces deux nouveaux noms est volontaire, mais ils désignent deux objets différents : un ensemble de tables et une identité autorisée à les utiliser.

CamilleAdmin est encore autre chose : c’est un membre administrateur du forum. Son compte sera retrouvé dans les données restaurées. Il ne sert pas à ouvrir phpMyAdmin ni à établir la connexion entre PHP et MySQL. Conservez ces trois catégories dans votre carnet : base, compte SQL, compte phpBB.

Dans WampServer, démarrez le moteur de base de données déjà choisi au cours 1. Utilisez le même serveur MySQL ou MariaDB et son port SQL relevé dans l’inventaire. Si Wamp propose plusieurs moteurs, ne choisissez pas un autre moteur simplement parce qu’il apparaît en premier. Nous ne réalisons pas une migration entre moteurs.

Créer la base vide

Ouvrez phpMyAdmin depuis Wamp et connectez-vous avec le compte de gestion utilisé au cours 1. Ce compte possède les droits nécessaires pour créer une base et un utilisateur. Utilisez son vrai mot de passe s’il en possède un ; ne supposez pas qu’il faut laisser le champ vide. Les opérations de préparation se font avec ce compte de gestion, tandis que phpBB se connectera ensuite avec le compte limité du clone.

Dans « Bases de données », utilisez « Créer une base de données ». Saisissez phpbb_ecole_restauration. Choisissez le même interclassement que pour l’installation d’origine : dans notre parcours, utf8_bin, parfois présenté sous le nom utf8mb3_bin. L’interclassement définit notamment comment les textes sont comparés. Nous le conservons pour ne pas ajouter une transformation à la restauration.

Activez « Créer », puis sélectionnez cette base. La page de structure doit annoncer qu’elle ne contient aucune table. Si le nom existe déjà avec des tables, arrêtez cette création : il peut s’agir d’un essai antérieur à identifier. Ne supprimez pas un ensemble de tables pour obtenir artificiellement la page attendue. Les étapes ci-dessous supposent une destination réellement vide.

Donner une clé seulement pour cette destination

Revenez à l’accueil du serveur de phpMyAdmin, puis ouvrez « Comptes utilisateurs » et « Ajouter un compte d’utilisateur ». Les libellés peuvent légèrement varier selon phpMyAdmin ; repérez les champs par leur intitulé, pas par leur position.

Indiquez phpbb_ecole_restauration comme nom d’utilisateur. Pour l’hôte autorisé, choisissez la saisie d’une valeur précise et entrez 127.0.0.1, comme pour le compte SQL du premier cours. Un compte SQL est identifié par le couple utilisateur et hôte. Le caractère % signifie une portée plus large ; il n’est pas nécessaire pour notre laboratoire.

Choisissez un mot de passe propre à ce compte et gardez-le dans votre gestionnaire de mots de passe. Il ne doit pas apparaître dans inventaire.txt. Un secret aléatoire long composé de lettres et chiffres évite les difficultés de syntaxe que nous expliquerons lors de l’édition du fichier PHP. Le cours n’impose aucun mot de passe commun à tous les apprenants.

Ne cochez aucun privilège global. Si l’écran propose de créer automatiquement une base portant le même nom, laissez cette option décochée puisque la base existe déjà. Créez le compte, puis utilisez « Modifier les privilèges » pour ce compte précis et son hôte 127.0.0.1. Dans la section des privilèges spécifiques à une base de données, choisissez phpbb_ecole_restauration et accordez les droits nécessaires sur cette seule base. Pour notre laboratoire, les droits de données et de structure sur cette base permettent à phpBB de fonctionner et d’exécuter plus tard ses migrations. Ne donnez pas le droit GRANT, qui permettrait d’accorder des droits à d’autres comptes.

Relisez le résultat : aucun droit global et aucun droit sur phpbb_ecole. Un affichage USAGE au niveau global signifie qu’aucun privilège global n’a été accordé. La base autorisée doit être exactement phpbb_ecole_restauration, pas un motif couvrant d’autres bases. Cette séparation limite aussi les conséquences d’une erreur de configuration : l’identité du clone ne doit pas pouvoir écrire dans la base d’origine.

Vérifier la destination avant l’import

Sélectionnez maintenant phpbb_ecole_restauration dans phpMyAdmin. Dans son onglet « SQL », exécutez cette requête de lecture :

SELECT DATABASE() AS base_selectionnee;



SELECT demande une information. DATABASE() renvoie le nom de la base actuellement sélectionnée. Le résultat doit être phpbb_ecole_restauration. Si vous lisez phpbb_ecole ou une valeur vide, n’importez rien : revenez à la bonne base et refaites la vérification. Cette requête ne modifie aucune donnée.

Ouvrez ensuite le fichier phpbb_ecole.sql de S1 dans votre éditeur de texte, sans l’enregistrer. Reprenez le contrôle du chapitre précédent : il doit contenir la structure et les données de toutes les tables, sans instruction CREATE DATABASE ni USE qui imposerait une autre base. Un commentaire mentionnant le nom d’origine n’est pas une instruction. En revanche, un ordre USE phpbb_ecole changerait réellement la destination de l’import.

Si l’export n’est pas neutre, préparez un nouveau point S1 complet selon le chapitre 2 : une nouvelle fenêtre sans écriture, un nouvel export neutre et une nouvelle copie des fichiers, réunis sous une nouvelle date. La source a pu évoluer après le premier S1 ; un nouvel export SQL ne doit pas être associé aux anciens fichiers. Conservez l’ancien point à part et utilisez la nouvelle paire pour la suite. N’effectuez pas un remplacement global du nom de base dans le fichier : cela pourrait aussi modifier un texte de message. Nos données doivent être restaurées telles qu’elles ont été sauvegardées.

Importer et lire le résultat

Dans la base cible vide, ouvrez « Importer », choisissez phpbb_ecole.sql dans S1, gardez le format SQL et l’encodage de l’export, puis lancez l’import. Attendez le message de résultat avant toute nouvelle action. Le fait d’avoir choisi un fichier ne signifie pas qu’il a été traité.

Un import réussi affiche les tables du forum. Retrouvez le préfixe noté dans l’inventaire : souvent phpbb_, mais votre installation peut utiliser une autre valeur. Le nombre de tables doit correspondre à l’inventaire de S1. Une erreur de taille maximale, de délai ou une interruption ne constitue pas un succès partiel acceptable : conservez son texte, puis résolvez ce problème avant de poursuivre. Ne relancez pas le fichier au hasard sur des tables déjà partiellement importées.

À ce stade, personne n’a encore visité le clone. Nous avons seulement préparé une base indépendante contenant les données de S1. Le forum d’origine n’a pas reçu cet import.

Exemple commenté

Exemple — le nom du fichier ne choisit pas la base

Vous importez un fichier nommé phpbb_ecole.sql dans phpbb_ecole_restauration. Ce nom de fichier décrit sa provenance ; il n’oblige pas MySQL à écrire dans phpbb_ecole. La destination est déterminée par la base sélectionnée et par les éventuelles instructions du fichier. C’est précisément pourquoi nous vérifions les deux.

Après import, les tables peuvent toujours s’appeler phpbb_posts et phpbb_users. Le préfixe des tables n’est pas le nom de la base. Deux bases différentes peuvent chacune contenir une table nommée phpbb_posts sans partager leurs messages.

Exercice à réaliser

Exercice — construire la moitié « données » du clone

1. Dans le carnet, écrivez « source : phpbb_ecole ; cible : phpbb_ecole_restauration ». Retrouvez S1 et le port SQL du serveur utilisé.
2. Avec le compte de gestion de phpMyAdmin, créez la base cible vide et le compte SQL décrit ci-dessus. Relisez ses privilèges. Le résultat attendu est un droit limité à la base cible.
3. Dans l’onglet SQL de la cible, exécutez SELECT DATABASE(). Notez le nom renvoyé, sans mot de passe.
4. Vérifiez l’absence d’ordres CREATE DATABASE et USE dans l’export. Importez le fichier neutre dans la cible vide et lisez le message de résultat.
5. Comparez le préfixe et le nombre de tables avec S1. Revenez dans la structure de phpbb_ecole, uniquement en lecture : elle est toujours présente. Ne lancez aucune opération de suppression ni de remplacement sur cette base.
6. Notez « base du clone importée ; fichiers du clone pas encore ouverts ». Gardez la prochaine visite du clone pour la leçon suivante.

Correction et résultat attendu

Correction et résultat attendu

Vous possédez deux bases distinctes. phpbb_ecole est la source conservée ; phpbb_ecole_restauration reçoit les tables du fichier S1. Le compte SQL propre au clone dispose des droits sur la seconde uniquement. Le contrôle de destination a renvoyé ce nom exact avant l’import.

Le nombre et le préfixe des tables correspondent à la sauvegarde. Le message de phpMyAdmin confirme un import sans erreur. Si ce n’est pas le cas, écrivez « restauration interrompue » avec l’erreur observée ; ne passez pas à l’ouverture du clone. Nous n’avons ni créé un nouveau membre phpBB ni relancé l’installation du forum.

À retenir

Une restauration de test utilise une base vide distincte et un compte SQL limité à cette base. Vérifiez la destination sélectionnée et l’absence d’instructions qui la changeraient dans l’export. Le nom du fichier SQL, le nom de la base et le préfixe des tables sont trois repères différents.

Seuil de réussite, en pourcentage : 100 %. QCM obligatoire pour terminer le cours.

Sommaire du cours

Préparer une maintenance que l’on peut vérifier

  1. Comprendre ce qu’il faut retrouver après une panne
  2. Relever un état technique et préparer son carnet de maintenance
  3. Créer des témoins et organiser une fenêtre sans écritures

Constituer une sauvegarde complète et contrôlée

  1. Exporter toute la base dans un fichier SQL réutilisable
  2. Copier les fichiers du forum sans oublier ses données
  3. Contrôler S1, conserver une seconde copie et rouvrir la source

Restaurer et vérifier une copie indépendante

  1. Restaurer la base dans une destination indépendante
  2. Relier les fichiers au clone et isoler son fonctionnement
  3. Prouver la restauration avec les contenus et les accès

Mettre à jour sur une copie vérifiée

  1. Choisir une version cible et vérifier sa compatibilité
  2. Sauvegarder le clone puis remplacer les fichiers du cœur
  3. Terminer la migration nécessaire et vérifier le résultat

Revenir en arrière et entretenir sa méthode

  1. Revenir à un état sauvegardé dans un second clone isolé
  2. Diagnostiquer un échec et choisir la suite de la maintenance
  3. Valider son projet et construire une routine de sauvegarde