IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

restauration d'une sauvegarde mysql


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut restauration d'une sauvegarde mysql
    Bonjour,

    J'ai un petit soucis: je réaliser régulièrement des sauvegardes d'une table mysql. Ensuite sur une page écrite en php, je récupère toutes les dates des sauvegardes, l'utilisateur choisit en choisit une. Et mon problème arrive je n'arrive pas à restaurer la table: j'ai regardé la doc mysql, fais je ne sais pas combien de tentatives la commande doit ressembler à ça mais elle ne marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $dir="C:\\wamp\\mysql\\data\\stage\\save_table";
    mysql database < "C:\\wamp\\mysql\\data\\stage\\2008-06-03.sql";
    Ici pour simplifier j'ai pris une date bien précise. J'ai essayé de mettre un $ devant database, enlever les quotes.. je ne comprend pas pourquoi ça ne marche pas! Aider moi svp à passer ce problème qui me parait tout con!

  2. #2
    Membre actif Avatar de BlackSmith
    Inscrit en
    Mars 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2008
    Messages : 181
    Points : 207
    Points
    207
    Par défaut
    Est-ce que tu pourrai être plus précis.

    Quel sont les erreurs qui sont affiché quand tu essayer de restaurer la base.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    J'ai un peu modifié mon programme, mais le problème n'est pas réglé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chdir("C:\\wamp\\mysql\\data\\stage\\save_table");
    mysql database < "2008-06-03.sql";
    Il me met comme erreur :
    Parse error: syntax error, unexpected T_STRING in C:\wamp\www\Stage_pageweb\stage.php on line 49

    Ma syntaxe n'est pas correcte mais j'ai beau essayè plusieurs combinaisons je ne trouve pas la bonne! Merci de ton aide

  4. #4
    Membre actif Avatar de BlackSmith
    Inscrit en
    Mars 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2008
    Messages : 181
    Points : 207
    Points
    207
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $lignes=file('2008-06-03.sql'); 
    foreach($lignes as $ligne) {
    	mysql_query($ligne,$db_link);
    }
    ?>
    Essaie avec cette methode.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    Merci pour ta proposition. Je l'avais déjà essayer et le souci c'est que je ne récupère pas du tout une table, on ne fait juste que recopier le contenu de la sauvegarde! Ce qui fait que je me retrouve avec plein de commentaires en plus et des données écrites de la façcon suivante:
    1,'2008-06-01 00:16:00',1,'T01',1,2,6),(1,'2008-06-01 00:16:00',2,'T02',1,2,20),......

    Ceci n'est pas vraiment utilisable.. Comment faire??

  6. #6
    Membre actif Avatar de BlackSmith
    Inscrit en
    Mars 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2008
    Messages : 181
    Points : 207
    Points
    207
    Par défaut
    Peut tu envoyer un exemple de ton fichier sql (2 ou 3 ligne seulement) pour voir comment sont stockée les données.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    Ok mais ça serra un peu plus de deux trois lignes: je fais ma sauvegarde avec la fonction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c:\wamp\mysql\bin\mysqldump -h localhost -u root --no-create-info Stage testtable_data >c:\wamp\mysql\data\stage\save_table\%date%.sql
    Je n'ai pas trouvé mieux. Ce qui me donne comme fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    - MySQL dump 10.10
    --
    -- Host: localhost    Database: Stage
    -- ------------------------------------------------------
    -- Server version	5.0.27-community-nt
     
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    ........
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
     
    --
    -- Dumping data for table `testtable_data`
    --
     
    LOCK TABLES `testtable_data` WRITE;
    /*!40000 ALTER TABLE `testtable_data` DISABLE KEYS */;
    INSERT INTO `testtable_data` VALUES (1,'2008-06-01 00:16:00',1,'T01',1,2,6),(1,'2008-06-01 00:16:00',2,'T02',1,2,20),....
     
     
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    ......
    /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
     
    -- Dump completed on 2008-06-04 12:50:00
    Alors soit j'utilise mal la fonction mysqldump, soit c'est vraiment pas pratique de restaurer cette table sauvegardée!!

  8. #8
    Membre actif Avatar de BlackSmith
    Inscrit en
    Mars 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2008
    Messages : 181
    Points : 207
    Points
    207
    Par défaut
    Enfaite dans la solution que je t'ai données tout à l'heure il faut que pour chaque ligne tu verifie que ce n'est pas un commentaire, comme ça tu aura juste a inserer les bonnes lignes. Donc normalement il n'y aura pas d'erreur.

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    J'ai bien pensé à tester si c'était un commentaire.. mais le souci c'est que toutes mes données sont sur une ligne ensuite aussi!! Après il faudrait que je sépare les champs qui sont séparés d'une virgule, et que je sépare aussi les différentes mesures qui sont entre parenthèses..Ca me parait bien compliqué non? Quel est l'intérêt alors d'utiliser mysql dump, autant creer un fichier .txt de sauvegarde!!

  10. #10
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    L'utilisateur qui tourne php, n'a probablement pas les droits appropriés pour exécuter ce genre de commande !!!

    il faut que la commande mysql soit passée comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql -u utilisateur -p mot_de_pass database < "C:\\wamp\\mysql\\data\\stage\\2008-06-03.sql";
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    J'ai aussi testé ça!!lol Mais ça me met toujours la même erreur.. Je fais tout en local pour le moment, mais même en mettant l'utilisateur et mot de passse ça ne marche pas.. Merci quand même pour vos idées, je ou on va bien finir par trouver!!lol

  12. #12
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    As tu un fichier de log MySQL ?
    que dit il ?
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  13. #13
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    Qu'est ce qu'un fichier log??

  14. #14
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    Par fichier log tu entend fichier pour se connecter à la base mysql (user,password...)?? Si c'est bien ça je ne pense pas en avori besoin..j'ouvre un sauvegarde mysql,je ne me connecte pas directement à une base de donnée mysql... S'il vous plait aider moi!!lol

  15. #15
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Citation Envoyé par patsak Voir le message
    Par fichier log tu entend fichier pour se connecter à la base mysql (user,password...)?? Si c'est bien ça je ne pense pas en avori besoin..j'ouvre un sauvegarde mysql,je ne me connecte pas directement à une base de donnée mysql... S'il vous plait aider moi!!lol
    Un fichier de log s'est un fichier qui retrace les évènement qui se sont dérouler sur une application serveur.
    MySQL a les siens, Apache aussi et idem pour tous les serveurs dignent de ce nom.
    Voilà à quoi cela ressemble:
    080213 8:24:36 [Note] Slave I/O thread killed while reading event
    080213 8:24:36 [Note] Slave I/O thread exiting, read up to log 'ns0-bin.000018', position 46086350
    mysqld(26660,0x18d6c00) malloc: *** error for object 0x234ae60: incorrect checksum for freed object - object was probably modified after being freed
    , break at szone_error to debug
    mysqld(26660,0x18d6c00) malloc: *** set a breakpoint in szone_error to debug
    080213 8:24:37 InnoDB: Starting shutdown...
    080213 8:24:40 InnoDB: Shutdown completed; log sequence number 0 43685
    080213 8:24:40 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
    Que tu sois sous Win ou sous Unix tu le trouveras dans:
    ton_chemin_mysql/data/nom_du_server.err

    Je pense que cela te permettra de savoir pour quelle raison la restauration ne fonctionne pas.
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  16. #16
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    Ok je ne connaissais pas l'existence de ces fichiers! J'ai cherché selon le chemin que tu m'as donné je n'ai qu'un fichier: "patsak.err", ce fichier n'a pasl e nom du serveur que j'utilise (je suppose apache), et je n'ai pas vraiment trouvé de commentaire qui pouvait expliqué mon pb, je peux me montrer.
    Par curiosité je suis donc remonté dans l'arborescence ( j'utilise wamp, je suis donc remonté au niveau de celui-ci). Là j'ai trois fichiers: php_error, mysql_error et apache_error (des fichiers txt). Seul mysql_error ressemble à l'exemple de fichier que tu m'as montré, mais là non plus pas de commentaires qui puissent m'aider...

    Quel est le fichier que je dois utiliser? Patsak.err? Mais il n'y a pas d'heure correspondant à l'heure où j'ai l'erreur.. Merci en tout cas pour ton aide

  17. #17
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Citation Envoyé par patsak Voir le message
    Quel est le fichier que je dois utiliser? Patsak.err? Mais il n'y a pas d'heure correspondant à l'heure où j'ai l'erreur.. Merci en tout cas pour ton aide
    Oui s'est celui là. Regarde ce qu'il y a dedans.
    Ce fichier ne te retournera que les erreurs renvoyées par le serveurs MySQL uniquement.
    Pour les erreurs php, elles se trouvent normalement dans un fichier nommé error.log dans le repertoire des log httpd. Désolé, mais Windows ce n'est pas mon truc alors...
    Je te conseil de trouver tes fichiers de conf en tapant http -V (attention au V maj). Tu trouvera par cette commande ou se trouve tes fichiers de log.
    A+
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  18. #18
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    Ok je vais voir ce que ça me donne..mais j'ai peur que ça soit compliqué.. Je vais peut-être essayé de recharger mes sauvegardes directement sous mysql dans une nouvelle table, pour ensuite faire mes requetes sql directement sur cette table. Ou alors j'utilise mes sauvegardes .txt directement dans php. Qu'en pensez vous?

    Et si quelqu'un sait comment charger exactement une sauvegarde sql dans php n'hésiter pas!!Merci

  19. #19
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Personnellement, je ne vois d'intérêt à restaurer tes sauvegardes depuis php que si ton serveur est distant et que tu en ai admin.
    Sinon en local, il vaut mieux le faire en mode console et de plus une restauration ne doit pas se faire tous les 4 matins
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

Discussions similaires

  1. restauration d'une sauvegarde à froid : ORA-01033
    Par mathieu gérard dans le forum Administration
    Réponses: 4
    Dernier message: 29/04/2010, 10h41
  2. Réponses: 5
    Dernier message: 13/02/2009, 17h28
  3. [9.i] Problème de restauration d'une sauvegarde
    Par hkhan dans le forum Oracle
    Réponses: 12
    Dernier message: 22/09/2006, 11h57
  4. [MyODBC]import d'une sauvegarde MySQL
    Par hansaplast dans le forum Access
    Réponses: 4
    Dernier message: 13/07/2006, 15h23
  5. restauration d'une sauvegarde.
    Par jbat dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 03/03/2005, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo