Bonsoir,
J'ai un script que je vais lancer plusieurs fois.
dans ce script je cree des users, et bien sur la deuxieme fois je tombe en erreur
le CREATE USER IF NO EXISTS ne semble pas exister ?
Une idée ? Merci d'avance
Philippe
Bonsoir,
J'ai un script que je vais lancer plusieurs fois.
dans ce script je cree des users, et bien sur la deuxieme fois je tombe en erreur
le CREATE USER IF NO EXISTS ne semble pas exister ?
Une idée ? Merci d'avance
Philippe
Bonjour,
Pourquoi ne pas interroger au préalable le catalogue MySQL (colonne GRANTEE de la vue système INFORMATION_SCHEMA.USER_PRIVILEGES), pour voir si le nom d'utilisateur existe ou pas ?
Il faut être au minimum en version 5.0 de MySQL pour avoir accès au catalogue.
ced
Rédacteur / Modérateur SGBD et R
Mes tutoriels et la FAQ MySQL
----------------------------------------------------
Pensez aux balises code et au tag
Une réponse vous a plu ? N'hésitez pas à y mettre un
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
Bonjour,
Un petit soucis
je lance la commande depuis un fichier .sql mysql -u root -p </tmp/ex.sql, c'est peut etre mon soucis ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 IF((SELECT count(*) from information_schema.USER_PRIVILEGES where grantee like '%user1''@''l%')>0,CREATE USER 'user1'@'localhost' IDENTIFIED BY 'xx'; GRANT ALL PRIVILEGES ON DB.* TO 'user1'@'localhost' WITH GRANT OPTION;,,)
Une idee ? Merci
Phil
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 USE tst delimiter $$ DROP PROCEDURE IF EXISTS simpleproc; CREATE PROCEDURE simpleproc() BEGIN DECLARE v_i INT; SELECT count(*) INTO v_i FROM information_schema.USER_PRIVILEGES where grantee like '%user1''@''l%'; IF(v_i=0) THEN CREATE USER 'user1'@'localhost' IDENTIFIED BY 'xx'; END IF; SELECT count(*) INTO v_i FROM mysql.user where user='user1' and host='%'; IF(v_i=0) THEN CREATE USER 'user1'@'%' IDENTIFIED BY 'xx'; END IF; END $$
Code : Sélectionner tout - Visualiser dans une fenêtre à part CALL simpleproc()$$
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager