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

Python Discussion :

execution sous python de mysqldump [Python 2.X]


Sujet :

Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 38
    Points : 24
    Points
    24
    Par défaut execution sous python de mysqldump
    Bonjour à tous et bonne année

    Je reviens vers vous pour un petit problème.

    J' utilise python 2.7 mysql5.5 sous windowsxp

    J'ai besoin de faire un backup de ma base de données

    J'ai testé la fonction mysqldump en ligne de commande et elle fonctionne

    mysqldump -u root --password=Monpass mabase --result-file=C:\svg2016-05-01.sql

    cela fonctionne très bien

    mais en python j'utilise subprocess

    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
     
    file1 = "svg"+str(date)+'.sql'
    path = 'C:\\' + file1			#j'ai simplifié et ressemblé
     
    #cas1
    d= 'mysqldump -u root --password=xxxx mabase --result-file=%s' %path
    print 'd = ', d
     
     		d =  mysqldump -u root --password=xxxx mabase --result-file=C:\svg2016-01-06.sql
     
    #cas2
    arg = ['mysqldump', '-u', 'root', '--password=xxxx', 'mabase', '--result-file=' +path]
    print 'arg = ', arg
     
    	arg =  ['mysqldump', '-u', 'root', '--password=xxxx', 'mabase', '--result-file=C:\\svg2016-01-06.sql']
     
    dans le premier cas
    p=subprocess.call(d, shell=True)
     
     le deuxième
    p=subprocess.call(arg)

    dans les deux cas cela ne marche pas

    pour le premier rien du tout pas de message d'erreur et le fichier de sauvegarde ne se crée pas

    pour le deuxième j'ai: WindowsError: [Error 2] Le fichier spécifié est introuvable

    Je pense à un problème de \ ou \\ et le chemin de la sauvegarde n'est pas compris

    Quelqu'un pourrait il me dire ou je me plante

    Merci d'avance et bonne journée

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Peut être que çà ne trouve pas mysqldump, essayez avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    subprocess.call("mysqldump")
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti Avatar de cervo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 220
    Points : 388
    Points
    388
    Par défaut

    Dans le dump mysql le chemin du fichier n'est pas entre quotes ??? le path du fichier , essaies r'C:\svg2016-01-06.sql'. python saura interpreter le chemin correctement. Chez moi les 2 commandes ont l'air de fonctionner. donc je pencherai sur un problème de path du fichier
    Toute chose dépend de la valeur qu'on lui attribue !

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Bonsoir,

    merci de vos réponses qui m'ont données quelques idées

    la réponse de wiztricks , je me suis apperçu que j'avais oublié de mette dans les
    variables d'environnement le chemin de mysql. c'est fait et c'est bon
    d'ou le message : WindowsError: [Error 2] Le fichier spécifié est introuvable

    et j'ai suivit celle de cervo

    j' ai donc repris la methode suivante dans l'invite de commande
    python
    import subprocess

    et
    >>> subprocess.call('mysqldump -u root --password=xxxx mabase --result-file=C:\svg2016-07-01.sql')
    0


    >>> subprocess.Popen('mysqldump -u root --password=xxxx mabase --result-file=C:\svg2016-07-01.sql')
    <subprocess.Popen object at 0x00B6FC70>

    les deux fonctionnent impecablement

    lorsque je passe sous python

    p = subprocess.call('mysqldump -u root --password=xxxx mabase > C:\svg2016-08-01.sql', shell=True)

    il y a du mieux
    plus de message d'erreur,
    le fichier de sauvegarde se créée mais il est vide

    j'ai fait plein de manip mettre les chemins en dur ou relatif utiliser Popen, call
    utiliser --result-file=%s' %path......
    rein n'y fait pour l'instant

    Si vous avez une autre idée je suis preneur

    et encore merci de répondre

    Bonne soirée

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Bonjour à tous

    suite à vos réponses j'ai fini par trouver le problème
    le chemin de mysql n'était pas dans les variables d'environnement
    et à part quelques erreurs cela fonctionne parfaitement

    merci encore à tous

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/07/2010, 14h27
  2. Fonction addslashes sous Python ?
    Par ecocentric dans le forum Général Python
    Réponses: 2
    Dernier message: 28/01/2006, 18h27
  3. Création d'un executable sous delhi 6
    Par sullivan45 dans le forum EDI
    Réponses: 2
    Dernier message: 30/11/2005, 10h40
  4. Existe-t-il un rad sous python?
    Par sloshy dans le forum EDI/RAD
    Réponses: 6
    Dernier message: 03/10/2005, 09h26
  5. [TP]Exécution sous XP
    Par Jeff on the web dans le forum Turbo Pascal
    Réponses: 9
    Dernier message: 28/04/2004, 10h32

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