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

Administration MySQL Discussion :

mysqldump, erreur de syntaxe?


Sujet :

Administration MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 25
    Points : 17
    Points
    17
    Par défaut mysqldump, erreur de syntaxe?
    Bonjour, je travail actuellement sur un tit bout de code permettant la sauvegarde d'une BDD, après avoir fait sauvegarde en xls puis CSV je m'attaque maintenant à ce qui me paraissait le plus simple, la sauvegarde en .sql. Sauf que, après environ 3h passé dessus, impossible de sauvegarder ma BDD, je crait mon fichier .sql, mais rien dedans, vide, 0ko. Je comprends pas trop parcque sur mon pc de test phpmyadmin semble lui aussi utiliser mysqldump et fonctionne très bien pour créer un backup... Bref, voici tout ce que j'ai essayé, si vous pouvez m'aider, je vous offre une bouteille de champagne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    /*mysql_select_db($database_bdd, $bdd);
    $tableName  = 'bdd';
    $backupFile = 'backup/client.sql';
    $query      = "SELECT * INTO OUTFILE '$backupFile' FROM $tableName";
    $result = mysql_query($query);
    $backupFile = 'utilisateur' . date("Y-m-d-H-i-s") . '.gz';
    $command = "mysqldump --all-databases --opt -h localhost -u utilisateur -p pass client > TEST.sql";
    $command = "mysqldump --all-databases > all_databases.sql";
    $command = "mysqldump utilisateur -p pass bdd > TEST.sql";
    $command = "mysqldump --user utilisateur --password=pass bdd > TESTEUH.sql";
    $command = "mysqldump -u utilisateur -p bdd > dbname.sql";
    */
    $command = "mysqldump --opt --user=\"utilisateur\" --password=\"pass\" --all-databases > dumpfile.mysql";
    system($command);
    Vous pouvez voir en commentaire tous les essais qui sont... infructueux... C'est un appel à l'aide, je vous remercie d'avance, ciao

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 66
    Points : 59
    Points
    59
    Par défaut
    Bonjour,
    une question bête, as-tu essayer de lancer mysqldump en ligne de commande pour voir si cela marche?

    Tu peux rajouter le chemin de mysqldump, pour faire un essai et voir si ça va mieux (/usr/bin/...).

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Est-ce que ta commande renvoie une erreur (message, code) ?

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    Bonsoir, tout d'abord merci de vos réponses, ça fait plaisir

    Alors j'ai testé en passant par les lignes de commandes, et là ok ça marche impec, ma commande est reconnu, et le fichier est généré sans problèmes. J'ai juste une petite erreur qui s'affiche après la génération du fichier .sql (complet):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqldump: Got error: 1017: Can't find file: 'general_log' (errno: 2) when using LOCK TABLES
    Mais bon, comme je vous le disais, le fichier est généré, donc je comprends pas pourquoi ça ne passe pas via le php :s. Aussi il n'y a pas de messages d'erreurs mysql quand je passe cette commande dans mon script php... ça doit être un problème entre l'interprêteur php et mysqldump mais je vois pas pourquoi... étrange... :s

    Toujours aussi perdu ^^

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    Yop, petite information pour vous annoncer que le problème du .sql vide provient du fait que php n'arrive pas à trouver l'application mysqldump tout seul, donc pour tester j'ai rajouté le path de mysqldump de ma machine test et ça marche impec... donc maintenant à moi de trouver le path de mon serveur pour le faire marcher en live. Merci à tous pour votre aide, bonne journée

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    mmhh... j'y penses comme ça mais... c'est normal que je sois obligé de spécifier où se trouve mysqldump? parcque là je suis en galère sur mon serveur amen, pas moyen de trouver mysqldump et pourtant j'ai essayé tout ça:
    /usr/local/bin/mysqldump
    /usr/local/mysql/bin/mysqldump
    /usr/mysql/bin/mysqldump
    /usr/bin/mysqldump
    mysqldump

    Bref, déjà confronté à ce problème? :s

  7. #7
    Invité
    Invité(e)
    Par défaut
    Salut,

    tu as accès à ton serveur via ssh?

    si oui, tu peux te logger et taper

    pour connaître le chemin exact de ta commande.

    Si ça ne va toujours pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find / -name "*mysqldump*"

Discussions similaires

  1. [Directives] Page blanche quand erreur de syntaxe
    Par syl2095 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/02/2006, 15h15
  2. [sql] erreur de syntaxe
    Par cmoa59 dans le forum JDBC
    Réponses: 14
    Dernier message: 03/05/2005, 11h41
  3. erreur de syntaxe en C++
    Par sergepmessa dans le forum C++
    Réponses: 6
    Dernier message: 11/03/2005, 18h15
  4. PHP SQL =>erreur de syntaxe (operateur absent)
    Par snipes dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 14h09
  5. erreur de syntaxe javascript dans ma page
    Par Oluha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2005, 14h53

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