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

Programmation et administration système Perl Discussion :

Mysqldump et perl


Sujet :

Programmation et administration système Perl

  1. #1
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Points : 2 412
    Points
    2 412
    Par défaut Mysqldump et perl
    Bonjour,

    Je suis en train de me faire un script de backup en Perl.
    Sa fonction sera notamment de faire des dump de bases de données MySQL sous Windows.

    Mais voila, lorsque je lance la commande mysqldump depuis le script perl, le dump échoue et mysql revoit une erreur de connexion à la base, alors que la même commande exécutée depuis l'invite de commande fonctionne...

    Voici le code dans le script :
    Code perl : Sélectionner tout - Visualiser dans une fenêtre à part
    system("\"C:\\Program\ Files\\MySQL\\MySQL\ Server 5.1\\bin\\mysqldump.exe\" --host=$DB_HOST --user=$DB_USER -password=$DB_PASS --single-transaction $DB_DBNAME > $DB_DEST\\$DB_DBNAME-$date.sql")

    Comme vous le voyez, j'ai pourtant protégé au maximum les backslashs et les espaces !

    Voici ce que me retourne l'exécution du script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqldump: Got error: 1045: Access denied for user 'user1'@'localhost' (using password: YES) when trying to connect
    Comment faire un mysqldump sous Windows en Perl ?

    Merci pour vos lumières
    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Peux-tu mettre ce code et nous retourner le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    my $programme_dump = 'C:/Program Files/MySQL/MySQL Server 5.1/bin/mysqldump.exe';
    my $commande       = '"' . $programme_dump . '" ' 
      . "--host=$DB_HOST "
      . "--user=$DB_USER "
      . "-password=$DB_PASS "
      . "--single-transaction $DB_DBNAME "
      . "$DB_DEST/$DB_DBNAME-$date.sql"
      ;
     
    print "[$commande]\n";
     
    system $commande;

  3. #3
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Points : 2 412
    Points
    2 412
    Par défaut
    Et voila :

    Code perl : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ["C:/Program Files/MySQL/MySQL Server 5.1/bin/mysqldump.exe" --host=localhost --user=aq1 -password=aq1 --single-transaction aq1 > C:\Users\toto\Desktop/aq1-120612.sql]
    mysqldump: Got error: 1045: Access denied for user 'aq1'@'localhost' (using password: YES) when trying to connect
    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    my ($DB_DEST, $DB_HOST, $DB_USER, $DB_PASS, $DB_DBNAME) = ('C:/temp', 'localhost', 'aq1', 'aq1', 'aq1');
    my $programme_dump   = File::Spec->catfile('C:/Program Files/MySQL/MySQL Server 5.1/bin/mysqldump.exe');
    my $fichier_resultat = File::Spec->catfile($DB_DEST, "$DB_DBNAME.sql");
     
    my $commande       = '"' . $programme_dump . '" ' 
      . "--host=\"$DB_HOST\" "
      . "--user=\"$DB_USER\" "
      . "--password=\"$DB_PASS\" "
      . "--single-transaction=\"$DB_DBNAME\" "
      . "> \"$fichier_resultat\"";
      ;
     
    print "[$commande]\n";
    system $commande;
    si ça ne fonctionne pas, copie colle la commande que le programme te donne et lance le dans le DOS.
    si toujours rien, essaye de de connecter via phpmyadmin ou en console pour voir si les paramètres que tu rentres sont exacts.

  5. #5
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Points : 2 412
    Points
    2 412
    Par défaut
    Bonjour,

    Désolé pour le temps que j'ai mis pour répondre.

    Je viens de tester ton dernier bout de code et cela fonctionne !

    Je vais donc l'utiliser. Mais je ne comprends toujours pas pourquoi les bouts de code précédents ne fonctionnaient pas. C'est un mystère...

    Merci beaucoup pour ton aide en tout cas .
    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [langage] Comparer Perl avec d'autres langages comme C ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2002, 23h52
  2. [langage] Inclure de perl en c !!!
    Par ryo00 dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2002, 10h03
  3. Réponses: 2
    Dernier message: 30/05/2002, 08h54
  4. [réseaux] Bench en Perl pour avoir le débit entre 2 pc
    Par Frich dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 22/05/2002, 17h22
  5. [web] Cherche un conseil pour un livre perl-tk
    Par Anonymous dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 29/04/2002, 15h35

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