p
u
b
l
i
c
i
t
é
publicité

Discussion: Mysqldump et 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 : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : décembre 2004
    Messages : 1 673
    Points : 2 512
    Points
    2 512

    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 rubrique Linux
    Articles dvp.com
    Man pages en français

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    17 590
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 17 590
    Points : 492 406
    Points
    492 406

    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;

    Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !

  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 : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : décembre 2004
    Messages : 1 673
    Points : 2 512
    Points
    2 512

    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 rubrique Linux
    Articles dvp.com
    Man pages en français

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    17 590
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 17 590
    Points : 492 406
    Points
    492 406

    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.

    Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !

  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 : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : décembre 2004
    Messages : 1 673
    Points : 2 512
    Points
    2 512

    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 rubrique Linux
    Articles dvp.com
    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