Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/04/2011, 15h30   #1
Invité de passage
 
Homme julien
Étudiant
Inscription : avril 2011
Messages : 1
Détails du profil
Informations personnelles :
Nom : Homme julien
Localisation : France

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

Informations forums :
Inscription : avril 2011
Messages : 1
Points : 0
Points : 0
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 :
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
julienw91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 03h58   #2
Membre Expert
 
Homme Eric Dureuil
Développeur informatique
Inscription : avril 2011
Messages : 843
Détails du profil
Informations personnelles :
Nom : Homme Eric Dureuil
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 : 843
Points : 1 318
Points : 1 318
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 :
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...
ericd69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h56.


 
 
 
 
Partenaires

Hébergement Web