Aller au contenu

Sujets conseillés

Posté

Bonjour

Jai effacé par erreur une table sur ma base ; jai recréé la table et je dois maintenant restaurer son contenu.

Jai une sauvegarde par mysqldump de la base ; je ne voudrais restaurer que la table effacée.

Si je fais Importer dans PhpMyAdmin du fichier de sauvegarde, je vais restaurer toutes les tables, ce qui ne convient pas car certaines ont évolué depuis ma sauvegarde.

Jai pensé à faire une extraction dans ce fichier de sauvegarde de la ligne concernant la table : INSERT INTO `compteur` VALUES et mettre ça en SQL dans PhpMyAdmin.

Quelle est la bonne solution, avec PhpMyAdmin ou en Php ?

Par avance merci de votre aide.

Francois

Posté

Bonjour,

Tu ne peux pas l'importer en local, faire ensuite l'export de la table incriminée puis recharger le tout en production?

Portekoi

Posté

Le mieux est d'éditer -une copie de- ton export .sql et supprimer les tables qui ne doivent pas être importées.

Ensuite, un simple

mysql -uroot -pPASSWORD nom_de_la_base < nom_du_fichier.sql

suffit!

Si cela ne passe pas, c'est que ton export ne comprend pas de --add-drop-tables, donc il faudra d'abord supprimer cette table.

Posté

bonjour et merci de vos réponses.

Non, je ne peux pas importer la sauvegarde en local.

Mais, extrait en éditant le fichier de sauvegarde de ma base, truc.sql, j'ai qqechose comme ça:


INSERT INTO `compteur` VALUES ('chausson','','chausson/chausson.php','26/05/2008','2008-05-26'),('martinot','','martinot/martinot.php','26/05/2008','2008-05-26'),('chausson','','chausson/chausson.php','24/05/2008','2008-05-24'),('landry','',
....

J'ai l'impression que je pourrai exécuter ce chargement de ces ordres dans la boite Sql de PhpMyAdmin; vrai?

Si c'était faisable, ça me serait le plus simple.

Francois

Posté

C'est faisable en copiant ces données dans la boite SQL de phpMyAdmin, mais il faut d'abord que tu vides la table ou tu auras des doublons et des erreurs.

Posté

bonjour

La copie dans la boite SQL n'a pas fonctionné très vraisemblablement parce que la table est trop volumineuse.

Je vais reprendre avec la commande de Dan avec une question:

- quand je fais une sauvegarde, ma commande commence par mysqldump

- dans ta commande, Dan, ça commence par mysql

Je comprend que je vais faire une restauration, et plus un dump; simplement, pour être sûr de ne pas me tromper, je souhaite vérifier que cette commande mysql est bien correcte pour cette restauration.

Aussi, j'ai remarqué que les noms de la base et de la table dans ta commande sont séparés par un signe < alors que, dans mes sauvegardes, le séparateur est un signe >; y a t il une signification attachée au sens de ce signe?

Par avance merci de ton aide.

Francois

Posté

Pour une commande mysql, on redirige l'entrée standard, donc on utilise <

Pour mysqldump on redirige la sortie standard, donc c'est >

Sans moquerie aucune, tu devrais tout de même te pencher sur un bouquin destiné aux débutants sous Linux ;)

Posté

bonjour et merci de vos réponses.

Je viens de faire la restauration de la table en utilisant la commande mysql proposée, ce qui s'est bien passé grace à vos conseils.

Je n'ai effectivement aucune compétence en Linux, une matière dans laquelle je n'ai jamais suivi de formation.

Je suis juste un utilisateur Windows, je construis aussi qqes sites Web pour mes besoins en utilisant du Php; actuellement, dans ce domaine du Web, je cherche une solution quand j'ai un problème.

Il faudra probablement que j'aille un peu plus loin comme tu le suggères.

Merci de votre aide, mon problème est résolu et j'ai appris qqechose de nouveau.

Francois

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...