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