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:
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