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

 MySQL Discussion :

Scripter MySql dans un batch


Sujet :

MySQL

  1. #1
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Par défaut Scripter MySql dans un batch
    Bonjour

    Désolé pour le bas niveau mais bon je suis sur le forum "débuter" ...

    J'ai un serveur Y à partir duquel je souhaite faire un import d'un fichier texte dans une table MySql.

    1- De quoi ai-je besoin sur le serveur Y pour que la commande LOAD DATA FILE soit utilisable ?

    2- Et après, quelle est la syntaxe de cette commande dans un fichier .bat pour faire ceci :
    --> LOAD DATA INFILE toto.csv dans la table toto


    Merci à vous,

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 390
    Par défaut
    Bonjour.


    1) Vous avez besoin de la lib client mysql installable seule en sélectionnant personnalisé dans le packages d'installation du serveur mysql (il me semble) .

    2) Le ligne de code sera du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql -h<serveur> -u<utilisateur> -p<password> -D<database> -e"LOAD DATA INFILE...."
    Pour que l'exe mysql soit appelable sans préciser le chemin complet, il faut cocher la case "include in PATH" lors de l'installation.

    Bon Week -End

  3. #3
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Par défaut
    J'ai bien essayé la commande mysql -h ...

    Mais j'ai un message d'erreur access denied sur la base.


    Qu'est ce qui coince ?


    Merci,

  4. #4
    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 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Le mot de passe, dans la ligne de commande, doit être collé au -p.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql -h 192.168.0.1 -u root -pmotdepasse ...
    Sinon, jette également un œil dans la : http://mysql.developpez.com/faq/?page=ERREURS_CONNEXION
    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

  5. #5
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Par défaut
    Précision j'arrive bien à me connecter sur le même serveur sur une autre base de donnée MySQL.

    Mais ça coince avec la base de données que j'ai créée ...

    Qu'est-ce que je dois vérifier pour avoir accès à la base de données ?


    Merci,

  6. #6
    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 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Dans les droits sur la base que tu as créée, vérifie que l'utilisateur avec lequel tu te connectes est bien autorisé à se connecter.
    Quelques infos supplémentaires sur le lien suivant : http://dev.mysql.com/doc/refman/5.0/...ss-denied.html

    Donne-nous le message d'erreur...
    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

  7. #7
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Par défaut
    L'utilisateur que j'ai créé est en ALL PRIVILEGES et j'obtiens ce message d'erreur :
    ERROR 1045 (28000) : Access denied for user '...' (using password : YES)
    ça passe avec un autre utilisateur, j'ai donc un problème avec l'utilisateur qui porte le même nom que la base.

    Je vais naviguer dans la FAQ ...


    Merci,

  8. #8
    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 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Se connecte-t-il depuis une autre machine ?
    Parce que les droits dépendent non seulement du nom de l'utilisateur, mais aussi de l'adresse IP depuis laquelle il se connecte (ce qu'on appelle le "host" dans MySQL). Il faut donner les privilèges à l'utilisateur depuis cette adresse IP.
    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

  9. #9
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Par défaut
    A partir d'un même ordinateur vers le même serveur j'arrive à me connecter sur la base avec un autre utilisateur.

    Donc le problème vient bien de l'utilisateur


    J'ai vu que l'on pouvait réinitialiser les mots de passe, je vais tenter ...


    Merci,

  10. #10
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Par défaut précision ...
    J'avance, j'avance

    J'arrive maintenant à me connecter à la base de donnée et à faire un load data local infile mais j'ai un problème sur la gestion du load.

    J'ai créé une base de données qui ne contient qu'une seule table sur laquelle je n'ai pas de clé.
    Donc forcément, quand il fait un load suivi d'un load, il intègre tout deux fois.
    Il ne peut pas faire autrement car il n'y a pas de clé.

    Ce que je souhaiterais, c'est faire en sorte qu'une même ligne soit la clé ou bien qu'un champ texte devienne clé.
    Mais MySQL ne veut pas d'une clé sur un champ texte ...

    Pistes ?


    Thanks,

  11. #11
    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 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Si j'ai bien compris, cette table te sert juste de passage lors du chargement d'un fichier texte.
    Et ce que tu souhaites, c'est éviter les doublons, c'est bien ça ?

    Et le contenu de cette table, il est ensuite placé dans une autre table ?
    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

  12. #12
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Par défaut
    En fait cette table me permet de faire des requêtes pour alimenter une application.

    Ma table TOTO se met à jour par un LOAD DATA LOCAL INFILE qui traite des commandes.
    Le fichier est composé des commandes depuis 2009 et se met à jour quotidiennement tout en conservant l'historique.

    Mon pb c'est que le LOAD intègre le contenu du fichier et ensuite à chaque LOAD il intégère le contenu du fichier également.
    Donc 45000 lignes + 45100 lignes + 45200 ...

    Ce que je souhaite, c'est que ma table TOTO se mette à jour comme ça :
    intégration des 45000 lignes et au deuxième LOAD intégration des 100 lignes nouvelles.
    Mais je ne vois pas comment je peux faire ?


    Merci,

  13. #13
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Par défaut
    J'ai réussi à mettre une clé primaire sur le champs qui m'intéressait.

    J'ai passé le champs de TEXT à CHAR et là j'ai pu mettre ce champ en clé primaire.


    Du coup sur le LOAD DATA, j'ai mis IGNORE ce qui devrait me permettre de n'intégrer que les nouvelles lignes ...


    Merci à vous,

  14. #14
    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 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Problème , alors ?
    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

  15. #15
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Par défaut :resolu:
    Voilà la syntaxe pour le batch :

    mysql -h serveur -D base de donnée -u utilisateur -pmotdepasse -e "source fichier txt"
    Pour windows, le chemin du fichier texte doit être sous cette forme :
    d:/toto.txt

    Et dans le fichier texte il faut écrire les commandes que l'on souhaite exécuter sur la base de données.


    Merci,

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

Discussions similaires

  1. Arrêt de l'exécution d'une requête MySQL dans DELPHI.
    Par joelmarc dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/10/2004, 16h11
  2. recuperer date dans un batch et la placer en variable
    Par Phenomenium dans le forum Windows
    Réponses: 6
    Dernier message: 07/06/2004, 10h44
  3. probleme d' echo dans un batch
    Par zorian dans le forum Windows
    Réponses: 16
    Dernier message: 18/05/2004, 17h21
  4. Réponses: 5
    Dernier message: 01/10/2003, 15h03

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