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.

Exporter toute la base dans un fichier SQL réutilisable

Objectif de la leçon

Produire un export SQL complet de phpbb_ecole, expliquer sa structure et vérifier qu’il ne choisit pas lui-même la base source lors d’une future restauration.

Explications

Nous sauvegardons un état précis

Au chapitre précédent, vous avez créé les deux témoins de maintenance, relevé l’environnement et préparé une période sans écriture. Le forum source est maintenant fermé avec « Désactiver le forum », et vous n’utilisez plus ses comptes pendant la sauvegarde. Les tâches éventuelles qui écriraient dans le laboratoire doivent également être arrêtées. La fermeture du forum ne bloque pas, à elle seule, toutes les opérations d’un administrateur ou d’une tâche extérieure.

Gardez le serveur de base de données de WampServer en marche : phpMyAdmin doit pouvoir lire ses tables. Nous ne copions pas le dossier interne contenant les fichiers de MySQL pendant son fonctionnement. Nous lui demandons d’exporter les informations dans un format qu’il sait ensuite relire.

Dans Documents\Sauvegardes-phpBB, rouvrez exactement le dossier S1-AAAA-MM-JJ-HHMM-source préparé au chapitre précédent, avec sa date réelle et vos deux fichiers de notes. Ne créez pas un second S1 pour la même opération. S1 désigne cette première sauvegarde du forum source. Ce dossier est extérieur à C:\wamp64\www : il ne doit pas être accessible par une adresse du forum. Si vous avez repris une activité depuis sa préparation, recommencez d’abord la période sans écriture et préparez un nouveau point complet.

Comprendre ce que contient le fichier SQL

SQL est le langage avec lequel un outil dialogue avec notre serveur de base de données. Un export SQL est un fichier texte contenant des instructions pour reconstruire des objets et y remettre les données. La structure décrit notamment les tables et leurs colonnes ; les données contiennent les comptes, messages, permissions et réglages. Il faut les deux.

Vous rencontrerez par exemple CREATE TABLE, qui crée une table, INSERT INTO, qui y introduit des lignes, et parfois ALTER TABLE, qui complète sa structure. Vous n’avez pas à écrire ces instructions. phpMyAdmin les prépare. Conservez aussi les tables vides : elles font partie du fonctionnement de phpBB. Une sauvegarde limitée aux messages perdrait, entre autres, leurs auteurs et leurs permissions.

Le nom des tables commence par le préfixe relevé dans config.php. Nous avons souvent phpbb_, mais utilisez votre valeur réelle. Ne changez pas ce préfixe pour la sauvegarde : le prochain chapitre reliera une copie des fichiers aux mêmes noms de tables, dans une autre base.

Choisir exactement la base source

Ouvrez le phpMyAdmin de votre installation WampServer et utilisez le même serveur MySQL ou MariaDB que pour Forum école. Le port SQL est celui de l’inventaire, pas nécessairement une valeur mémorisée. Avec le compte SQL phpbb_ecole et son mot de passe, retrouvez la base phpbb_ecole. Un compte de gestion local peut aussi effectuer l’export, mais il ne faut alors sélectionner aucune autre base.

Le compte SQL n’est pas CamilleAdmin. Le premier autorise l’accès à la base ; le second vous connecte au forum. Si phpMyAdmin refuse la connexion, revenez à l’inventaire et au serveur sélectionné. Ne changez pas les mots de passe du forum pour tenter de réparer un accès SQL.

Ouvrez la base phpbb_ecole, puis son onglet « Exporter ». Relisez le nom de la base dans le contexte de la page. Vous devez exporter la base entière, et non une seule table ou l’ensemble du serveur. Relevez dans inventaire.txt le nombre de tables sélectionnées et le préfixe observé. Les nombres de lignes estimés par certains écrans ne constituent pas une preuve d’exhaustivité.

Régler un export complet et neutre

Choisissez la méthode personnalisée, celle qui affiche les options, et le format SQL. Dans la liste des tables, sélectionnez toutes les tables de phpbb_ecole avec leur structure et leurs données. Selon la version de phpMyAdmin, ces choix sont regroupés ou présentés dans des colonnes séparées. Vérifiez leur sens annoncé ; n’utilisez pas la position d’une case comme repère.

Demandez l’enregistrement dans un fichier. Pour notre petite base d’exercice, choisissez une sortie sans compression, avec l’encodage UTF-8. Nous pourrons ainsi inspecter le fichier directement. Conservez les options normales de création des tables et d’insertion des données. N’exportez aucun compte SQL ni privilège du serveur.

Dans les options de création d’objets, laissez désactivée l’option qui ajoute CREATE DATABASE / USE. Son libellé exact dépend de la traduction et de la version ; ces deux mots SQL permettent de l’identifier. CREATE DATABASE créerait une base ; USE sélectionnerait celle sur laquelle exécuter les instructions suivantes. Nous voulons choisir nous-mêmes une base de restauration vide, sans que le fichier revienne vers phpbb_ecole.

Pour cet atelier sur une base cible neuve, nous n’avons pas besoin d’ajouter DROP DATABASE ou DROP TABLE. Laissez leur ajout désactivé. DROP signifie supprimer : cette option n’est pas une façon de rendre une sauvegarde plus complète. Nous ne restaurerons pas le fichier sur la source.

Lancez l’export avec le bouton de validation de votre version de phpMyAdmin. Attendez que le téléchargement soit terminé. Enregistrez le résultat sous phpbb_ecole.sql dans S1. Si le navigateur l’a placé dans Téléchargements, copiez-le dans S1 et vérifiez le fichier obtenu. Les doublons provisoires seront traités lorsque le point de sauvegarde sera contrôlé.

Inspecter sans modifier ni exécuter

Dans l’Explorateur Windows, vérifiez l’extension réelle et une taille supérieure à zéro. Ouvrez phpbb_ecole.sql avec le Bloc-notes ou votre éditeur de texte. Cette ouverture sert à lire : n’importez rien dans phpMyAdmin et ne sauvegardez pas une version réécrite par l’éditeur.

Retrouvez des instructions CREATE TABLE et INSERT INTO, les noms de tables attendus et, si votre éditeur le permet, le texte du sujet témoin. L’absence de résultat dans une recherche de phrase peut venir de son encodage dans l’export ; elle doit être examinée, pas compensée en retapant le message dans le fichier. Contrôlez également la fin du document : pas de page d’erreur HTML, de message d’échec PHP ou d’instruction visiblement coupée. Un COMMIT final peut être présent, mais ce n’est pas un marqueur universel obligatoire.

Recherchez CREATE DATABASE et USE. Un commentaire indiquant le nom de la base exportée est normal. Un mot USE à l’intérieur du texte d’un message n’est pas l’instruction SQL USE. Ce qui doit être absent, c’est une instruction active qui crée ou sélectionne la base source. Si vous hésitez à distinguer instruction, commentaire et texte entre guillemets, refaites l’export après avoir contrôlé son option ; n’effectuez aucun remplacement global du nom de la base.

Si vous constatez une erreur, ne passez pas à la restauration. Reprenez l’export tant que la période sans écriture est maintenue. La copie des fichiers, à la leçon suivante, complétera ce même état S1.

Exemple commenté

Exemple — le nom de la base dans le texte

L’en-tête d’un export peut annoncer en commentaire : « Base de données : phpbb_ecole ». C’est une information sur l’origine. En revanche, une instruction USE suivie du nom phpbb_ecole et d’un point-virgule demande au serveur de travailler dans cette base. Même si vous aviez ouvert une autre base dans phpMyAdmin, cette instruction aurait son propre effet.

Notre solution consiste à produire dès le départ un export sans sélection de base. Nous conserverons ensuite les noms des tables et le texte des messages, y compris un éventuel message qui parle de phpbb_ecole.

Exercice à réaliser

Exercice — produire la moitié SQL de S1

1. Sur votre ordinateur, vérifiez la période sans écriture et rouvrez le dossier privé S1 préparé au chapitre 1, avec inventaire.txt et preuves.txt. Gardez le moteur SQL de WampServer démarré.
2. Dans phpMyAdmin, ouvrez phpbb_ecole sur le serveur de l’inventaire. Notez le nombre de tables et leur préfixe.
3. Dans « Exporter », choisissez SQL et les options personnalisées : toutes les tables, structure et données, fichier UTF-8 sans compression, sans ajout CREATE DATABASE / USE ni DROP DATABASE ou DROP TABLE.
4. Téléchargez phpbb_ecole.sql dans S1. Attendez la fin puis relevez sa taille en octets.
5. Lisez le début et la fin dans un éditeur de texte. Contrôlez les instructions et l’absence de sélection de base active. Fermez sans modifier le fichier.
6. Dans preuves.txt, inscrivez le serveur, la base, les heures de début et de fin, les options retenues et le résultat des contrôles. Ne notez aucun mot de passe.

Correction et résultat attendu

Correction et résultat attendu

S1 contient un fichier SQL non vide provenant uniquement de phpbb_ecole. Toutes ses tables ont été sélectionnées avec structure et données. Son préfixe correspond à l’inventaire ; l’export n’impose pas la base de destination. Aucune restauration n’a encore eu lieu.

Si une option CREATE DATABASE / USE est restée cochée, recommencez l’export correctement et contrôlez le nouveau résultat. Si le fichier contient une erreur ou paraît interrompu, conservez la trace de l’échec et refaites l’opération. Ne déclarez pas la sauvegarde complète parce que le téléchargement existe : les fichiers phpBB manquent encore, et le fonctionnement après restauration reste à tester au chapitre suivant.

À retenir

L’export SQL doit contenir toutes les tables avec leur structure et leurs données. Produisez-le au niveau de phpbb_ecole, sans instruction qui choisisse la base source lors d’un import. Gardez le fichier intact, privé et associé à la même période sans écriture que la prochaine copie des fichiers.

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