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

Shell et commandes GNU Discussion :

Echappement *.* dans requête SQL en bash


Sujet :

Shell et commandes GNU

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 7
    Points : 10
    Points
    10
    Par défaut Echappement *.* dans requête SQL en bash
    Bonjoru à tous,

    Je souhaite execute une commande mysql dans un script bash.

    Voici l'instruction en question :

    mysql -h localhost -u XXXXXXXXXXX -pXXXXX -nbA -B --execute="GRANT USAGE ON *.* TO '${DB_NAME}'@'localhost' IDENTIFIED BY '${DB_PWD}' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;"


    Malheureusement le *.* est remplacer par la liste des fichiers du dossier en cours... J'ai tenté un échappement via \*.\* sans succès.

    Quelqu'un aurait une astuce?

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 371
    Points : 23 626
    Points
    23 626
    Par défaut
    Citation Envoyé par MAX3315 Voir le message
    J'ai tenté un échappement via \*.\* sans succès.
    C'est curieux, ça devrait fonctionner. Est-ce que tu obtiens toujours la liste des dossiers ou bien est-ce ta requête qui échoue pour d'autres raisons ?

    Essaie de remplacer *.* par "'*.*'" pour voir… (c'est-à-dire : guillemet, apostrophe, étoile, point, étoile, apostrophe, guillemet).

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 7
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Est-ce que tu obtiens toujours la liste des dossiers ou bien est-ce ta requête qui échoue pour d'autres raisons ?
    Pour l'instant j'ai pû contourner le problème en passant par une autre requête sans *.*. Et j'avais effectivement un autre soucis avec les 'localhost' ou j'ai simplement supprimé les ' pour que cela fonctionne.

    Citation Envoyé par Obsidian Voir le message
    Essaie de remplacer *.* par "'*.*'" pour voir… (c'est-à-dire : guillemet, apostrophe, étoile, point, étoile, apostrophe, guillemet).
    Testé sans succès.

    Mon script est maintenant fonctionnel mais pas de façon très élégante. Je laisse donc le topic ouvert si jamais quelqu'un d'autre à une solution par rapport à ces *.*

    Merci Obsidian pour le retour en tout cas.

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 801
    Points
    30 801
    Par défaut
    As-tu essayé en mixant les guillemets simples et doubles ?
    mysql -h localhost -u XXXXXXXXXXX -pXXXXX -nbA -B --execute='GRANT USAGE ON *.* '"TO '${DB_NAME}'@'localhost' IDENTIFIED BY '${DB_PWD}' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;"
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par MAX3315 Voir le message
    Bonjoru à tous,
    Bonjoru à toi aussi

    Citation Envoyé par MAX3315 Voir le message
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql --execute="GRANT USAGE ON *.* TO ..."


    Malheureusement le *.* est remplacer par la liste des fichiers du dossier en cours...
    Pas possible. Les double quotes protègent l'étoile. T'as qu'à essayer echo * ; echo "*" pour t'en assurer.

    As-tu essayé cette requête directement sans l'appeler depuis un script ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. [MySQL] Introduire une variable dans requête SQL, insérer des données à la volée
    Par Ronan.f dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 29/04/2006, 22h10
  2. [VB6]Fonction dans requête SQL Access
    Par jean-pierre96 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 21/04/2006, 19h44
  3. TEdit.Text dans Requête SQL?!?
    Par zarbydigital dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/10/2005, 09h37
  4. [Visual Web] [SJSC] Concaténation dans requête SQL
    Par Original Prankster dans le forum NetBeans
    Réponses: 22
    Dernier message: 15/08/2005, 14h50
  5. ASP et valeur NULL dans requêtes SQL
    Par chuck_m dans le forum ASP
    Réponses: 7
    Dernier message: 13/08/2004, 11h15

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