Restaurer la base préparée dans une destination vide
Objectif de la leçon
Importer uniquement le SQL de S7-publication dans la base dédiée, vérifier sa destination et distinguer une restauration complète d’un import interrompu.
Explications
Nous retrouvons des données, nous n’installons pas un nouveau forum
À la leçon précédente, vous avez créé une base vide sur l’hébergement. Nous allons y remettre les tables et leurs données issues de S7-publication. Les utilisateurs, messages et réglages préparés au chapitre 1 doivent être retrouvés. L’assistant d’installation phpBB ne participe pas à cette restauration.
Retrouvez la paire datée S7-publication, composée des fichiers et du SQL enregistrés pendant la même période sans écriture. N’utilisez pas S7-source : ce point précédent contient l’état avant la préparation des comptes et des contenus. Le nom publication ne suffit pas si vous avez mélangé deux dates ; relisez son inventaire.
La protection du dossier reste active. Aucun phpBB n’est encore accessible sur la destination. Nous utilisons phpMyAdmin fourni par l’hébergeur depuis son panneau HTTPS, pas celui de Wamp. Ce sont deux serveurs différents, même si les écrans se ressemblent.
Identifier sans ambiguïté la base cible
1. Dans le panneau de l’hébergement, ouvrez « phpMyAdmin ».
2. Sélectionnez la base créée à la leçon 4 par son nom complet, préfixe du compte compris. N’ouvrez ni une base d’un autre site, ni une base de fonctionnement comme information_schema ou mysql.
3. Dans « Structure », vérifiez l’absence de tables. Si des tables existent, même avec un préfixe familier, arrêtez. Il peut s’agir d’un import antérieur ou de la mauvaise base ; rien ne doit être écrasé.
4. Ouvrez l’onglet « SQL » de cette base et exécutez la lecture suivante, déjà rencontrée au cours 4 :
SELECT DATABASE() AS base_selectionnee;
SELECT demande une information ; DATABASE() renvoie le nom sélectionné ; AS donne un titre au résultat. La valeur doit correspondre exactement au carnet. Une réponse vide ou un autre nom impose de revenir à la sélection, sans lancer l’import.
Le nom du compte dans le panneau ne suffit pas : le même compte de gestion peut administrer plusieurs bases. Cette petite lecture vous oblige à vérifier la destination de l’action présente. Le compte SQL réservé à phpBB sera utilisé dans config.php à la prochaine leçon ; il ne faut pas remplacer arbitrairement votre connexion de gestion phpMyAdmin.
Relire le contenu de l’export
Sur votre ordinateur, ouvrez le SQL de S7-publication avec l’éditeur de texte, en lecture. Un export SQL contient des instructions pour recréer les structures et les données. Il peut être exécuté, et pas simplement affiché comme une liste de messages.
Notre export doit rester neutre quant au choix de la base. Il ne contient donc pas d’instruction CREATE DATABASE ou USE imposant le nom local. Un commentaire indiquant l’origine n’est pas une instruction. Vérifiez aussi qu’aucune instruction ne cible explicitement une autre base par un nom qualifié. Si le contrôle vous laisse un doute, revenez à l’export guidé du cours 4 ou demandez une vérification avant import.
Ne faites pas de remplacement global de phpbb_ecole_publication par le nom distant. Ce texte peut aussi apparaître dans un message ou une valeur qui ne décrit pas la destination SQL. Une transformation de cette sorte pourrait modifier le contenu pédagogique sans le signaler.
Si le SQL doit être refait, préparez une nouvelle paire datée S7-publication avec ses fichiers correspondants et un nouvel inventaire, selon la méthode du chapitre 1. Conservez l’ancienne paire séparément. Ne mélangez pas une base réexportée après des changements avec des fichiers plus anciens.
Importer depuis votre ordinateur
Dans la base cible toujours vide, choisissez « Importer », ou « Import » en anglais. Utilisez le sélecteur de fichier pour choisir le SQL de la bonne paire sur votre ordinateur. Il n’est pas nécessaire de déposer cet export dans le dossier public du forum : phpMyAdmin reçoit le fichier à travers son interface d’administration.
Gardez le format SQL et l’encodage correspondant à l’export. Nous ne convertissons pas les caractères ni les interclassements pendant ce transfert. L’interclassement définit notamment comment les textes sont comparés ; conserver la structure exportée évite de transformer deux choses simultanément.
Avant d’activer le bouton d’exécution de l’import, relisez trois éléments : nom de la base, nom du fichier et date de S7-publication. Lancez une seule fois et attendez le résultat. Un transfert de fichier terminé ne prouve pas encore que toutes ses instructions ont été exécutées.
Une erreur de taille maximale, de temps d’exécution, de syntaxe ou d’interclassement bloque la suite. Enregistrez son message utile dans votre carnet sans y inclure de secret. Si l’offre ne peut pas importer cet export, demandez à l’hébergeur sa procédure d’import adaptée et privée. Ne placez pas le SQL dans public_html pour lui fournir un téléchargement facile.
Un import interrompu peut avoir créé une partie des tables. Ne le relancez pas au hasard par-dessus. Faites identifier cet essai, puis utilisez une nouvelle base dédiée réellement vide, ou une remise à zéro contrôlée de la seule base d’essai avec l’hébergeur. Dans le premier cas, mettez à jour le carnet et l’association de l’utilisateur SQL. Aucun ancien forum ne doit être supprimé pour débloquer l’exercice.
Contrôler ce qui a été restauré
Après un résultat sans erreur, rouvrez « Structure ». Comparez les noms et le nombre de tables avec l’inventaire S7-publication, y compris celles des extensions conservées. Repérez leur préfixe réel. Si l’inventaire indique phpbb_, vous retrouverez notamment phpbb_config, phpbb_users, phpbb_forums, phpbb_topics et phpbb_posts. Un autre préfixe est possible ; ne renommez pas les tables pour ressembler à l’exemple.
Les nombres de lignes affichés dans un résumé phpMyAdmin peuvent être estimés. Pour un contrôle exact des contenus témoins, vous pouvez lire le nombre réel de lignes avec COUNT(*), qui signifie « compter les lignes ». Dans l’onglet SQL de la cible, adaptez uniquement le préfixe réel de ces trois noms :
SELECT COUNT(*) AS nombre_forums FROM phpbb_forums;
SELECT COUNT(*) AS nombre_sujets FROM phpbb_topics;
SELECT COUNT(*) AS nombre_messages FROM phpbb_posts;
Ces trois lectures n’écrivent rien. Comparez leurs résultats aux mêmes lectures sur la copie locale de publication restée fermée et inchangée depuis S7. Si elle a évolué depuis, la comparaison n’est plus celle du point sauvegardé : utilisez son inventaire daté. Des nombres égaux sont utiles, mais ne prouvent pas à eux seuls l’intégrité de chaque texte ; la recette vérifiera aussi des sujets et leurs accents.
Retrouvez également dans la table de configuration le nom « Jardins Partagés — démonstration pédagogique », plutôt que le nom de l’ancien clone. Les comptes d’entraînement ont été désactivés avant S7, sans que leurs contenus soient effacés. N’activez aucun compte pour vérifier qu’il existe. La première connexion et la vérification détaillée des données viendront après adaptation de l’adresse.
Le point d’arrêt de cette leçon
Consignez : base cible, point S7 utilisé, import terminé sans erreur, tables comparées et anomalies éventuelles. Ne visitez pas encore index.php. La base contient toujours plusieurs réglages adaptés au laboratoire ; le chapitre 3 les préparera pour l’adresse publique avant toute exécution de phpBB. La prochaine leçon prépare d’abord les fichiers et leur connexion SQL.
Exemple commenté
Le panneau annonce que 80 % du fichier ont été transférés, puis la page affiche un délai dépassé. Des tables apparaissent déjà. Cela ne constitue pas une restauration utilisable : certaines instructions peuvent manquer. Le bon réflexe consiste à conserver l’erreur et identifier la destination d’essai, pas à interpréter la présence de quelques tables comme une réussite.
Exercice à réaliser
Vous trouvez deux paires : S7-source du matin et S7-publication préparée après la désactivation des comptes. La base distante est vide. Écrivez laquelle utiliser et pourquoi. Puis décrivez vos trois contrôles avant import et deux vérifications après import. Précisez ce que vous feriez si la base annoncée par SELECT DATABASE() ne correspond pas au carnet.
Correction et résultat attendu
Utilisez S7-publication : elle contient les données contrôlées pour cette démonstration. Avant l’import, confirmez la destination, son absence de tables et la paire SQL/fichiers datée dont le SQL ne change pas la base choisie. Après import, exigez un résultat sans erreur, puis comparez les tables et les témoins prévus. Si SELECT DATABASE() indique une autre base, corrigez la sélection et recommencez cette seule lecture ; aucun import ne doit partir. L’égalité d’un compteur n’autorise pas à ignorer un message d’erreur.
À retenir
Restaurez la bonne paire dans une base indépendante vide. Le SQL reste hors du dossier public. Un import partiel n’est pas validé ; contrôlez destination, tables et contenu. La première visite phpBB attend encore la configuration des fichiers et de l’adresse.
Seuil de réussite, en pourcentage : 100 %. QCM obligatoire pour terminer le cours.