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

Administration MySQL Discussion :

Problème de syntaxe batch sql


Sujet :

Administration MySQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Problème de syntaxe batch sql
    Bonjour,
    J'ai créé un script batch pour la création d'utilisateur avec droit sur une base de données mais le script ne fonctionne pas correctement.

    1er problème:
    Lorsque je l'exécute sur mysql, il me met un message d'erreur me disant que la syntaxe des requêtes sql ne sont pas bonnes.

    2ème problème:
    En continuant le script après les erreurs, en vérifiant avec phpmyadmin nous voyons bien que l'utilisateur a été créé mais sans mot de passe. alors qu'un mot de passe est créé avec le script.

    Pouvez-vous m'aider?

    Le script en question ci-dessous:
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    @echo off
    REM debut script
    REM dossier de mysql.exe
    cd C:\WAMP\bin\mysql\mysql5.5.8\bin
    REM informations de logincd
    :log
    CLS
    ECHO.
    ECHO.
    ECHO Entrer les identifiants du serveur mysql.
    ECHO.
     
    REM reinitialisation variable login
    SET login=""
    REM demande du login
    SET /p login="Login: "
    :login
    REM test si login vide
    IF %login%=="" (
    CLS
    ECHO.
    ECHO.
    ECHO Entrer les identifiants du serveur mysql.exe.
    ECHO.
    REM si login vide, demande de resaisir
    SET /p login="Merci de saisir un login valide : "
    REM renvoie au test de la condition
    GOTO :login
    )
     
    REM demande du password
    REM reinitialisation variable password
    SET pass=""
    REM demande du password
    SET /p pass="Password: "
    ECHO.
    :pass
    REM meme test que pour login
    IF %pass%=="" (
    echo.
    SET /p pass="Merci de saisir un mot de passe valide: "
    ECHO.
    GOTO :pass
    )
    ECHO.
     
     
     
    REM reinitialisation variable verif
    SET verif=""
    REM demande au serveur de retourner la valeur 1 avec les identifiants precedents
    FOR /F "Tokens=*" %%I IN ('mysql -u %login% -p%pass% -e "SELECT 1;"') DO (
    REM la variable verif prend la valeur de la reponse de mysql
    SET verif=%%I
    )
    REM si la reponse vaut bien 1 alors il continue
    IF "%verif%"=="1" GOTO :bdd
    REM sinon affiche message d erreur
    CLS
    ECHO.
    ECHO Connexion impossible. Merci de verifier les identifiants
    ECHO ainsi que l'installation de mysql.
    ECHO.
    PAUSE
    REM et renvoie a la demande de login password
    GOTO :log
     
     
    :bdd
    REM reset variable user
    SET user=""
    REM identifiants de l'utilisateur à creer
    ECHO.
    ECHO.
    SET /p user="Nom d utilisateur a creer: "
    :user
    IF %user%=="" (
    CLS
    ECHO.
    ECHO.
    ECHO.
    REM si user vide, demande de resaisir
    SET /p user="Merci de saisir un nom d utilisateur valide : "
    REM renvoie au test de la condition
    GOTO :user
    )
     
    REM demande du password user
    REM reinitialisation variable mdp
    SET mdp=""
    REM demande du password
    SET /p mdp="Mot de passe de l utilisateur: "
    ECHO.
    :mdp
    REM meme test que pour user
    IF %mdp%=="" (
    echo.
    SET /p mdp="Merci de saisir un mot de passe valide: "
    ECHO.
    GOTO :mdp
    )
    ECHO.
     
    PAUSE
    mysql -u %login% -p%pass% -e "CREATE USER '%user%'@'%' IDENTIFIED BY '%mdp%';"
    PAUSE
    mysql -u %login% -p%pass% -e "GRANT SELECT, INSERT, UPDATE, DELETE on 'centrale_de_reservation'.client , 'centrale_de_reservation'.reserver TO '%user%'@'%' IDENTIFIED BY '%mdp%';"
    PAUSE
    mysql -u %login% -p%pass% -e "GRANT SELECT ON *.* TO '%user%'@'%' IDENTIFIED BY '%mdp%';"
    PAUSE
    Cdt,
    Julienw91

  2. #2
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    Une piste est déjà de vérifier le contenu de tes variables par des echos

    une autre de passer tes commandes chainées avec l'opérateur permettant d'envoyé à un console comme celle de su ou mysql (ça marche pour su donc pour mysql aussi je pense):

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    mysql -u %login% -p%pass% <<sep
    show databases;
    use truc;
    show tables;
    ...
    sep

    au pire fais directement des insert le décrit et un flush des privilèges pour mettre à jour comme le dit la la documentation...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

Discussions similaires

  1. Problème de syntaxe en SQL
    Par Evilam dans le forum Requêtes
    Réponses: 9
    Dernier message: 20/05/2008, 16h12
  2. Problème de syntaxe VBA SQL
    Par Levon dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/02/2008, 11h25
  3. problème de syntaxe delphi pour une requête sql
    Par socooooool dans le forum Bases de données
    Réponses: 12
    Dernier message: 07/07/2006, 16h53
  4. [SQL][REQUETE] problème de syntaxe
    Par Stender dans le forum Access
    Réponses: 4
    Dernier message: 02/03/2006, 21h02
  5. [Interbase] Problème de syntaxe SQL
    Par navis84 dans le forum InterBase
    Réponses: 4
    Dernier message: 22/12/2004, 17h07

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