[shell] petit probleme avec mysql

petit probleme avec mysql [shell] - Shell/Batch - Programmation

Marsh Posté le 06-02-2003 à 22:56:25    

je connais pas bien la syntaxe des shell script mais j'ai essayé un truc. un script qui prend en parametre le mdp root, le nom de l'utilisateur a ajouter et son mot de passe. ce script devra créé une bdd du nom de l'user et donné les droits a l'utilisateur sur cette table et ca devra me dire si la table existe deja.
 
c peut etre pas tres claire :D, je veux faire comme sql.free.fr :D :D
 
pour l'instant j'ai fait ca :
 

Code :
  1. #! /bin/sh
  2. # ajout d'un user mysql et d'une table eponyme.
  3. #
  4. mysql -uroot -p$1 -e "CREATE DATABASE $2; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON $2 TO $2@% IDENTIFIED BY $3;"
  5. echo done
  6. # fin du script


 
et comme par hasard, ca me donne :
 

root@zaibserver:~# ./test1.sh password toto titi
ERROR 1064 at line 1: You have an error in your SQL syntax near '% IDENTIFIED BY titi' at line 1
done


 
la base toto a bien été créée mais pas l'user.
 
help  
 
merci


Message édité par Zaib3k le 07-02-2003 à 23:12:18
Reply

Marsh Posté le 06-02-2003 à 22:56:25   

Reply

Marsh Posté le 07-02-2003 à 00:04:31    

grant [...] to 'user'@'%'


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 07-02-2003 à 00:05:07    

et alors faudrait voir à pas confondre table et base, c pas vraiment la meme chose:)


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 07-02-2003 à 10:14:05    

--greg-- a écrit :

et alors faudrait voir à pas confondre table et base, c pas vraiment la meme chose:)


 
en fait je veux une base du nom de l'user


Message édité par Zaib3k le 07-02-2003 à 23:11:56
Reply

Marsh Posté le 07-02-2003 à 11:30:59    

Zaib3k a écrit :


 
en fait je veux une table du nom de l'user

ben ton script il crée une base avec le nom de l'user  :sweat:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 07-02-2003 à 11:55:44    

--greg-- a écrit :

grant [...] to 'user'@'%'


 
marche pas  :sweat:  
 

ERROR 1064 at line 1: You have an error in your SQL syntax near 'titi' at line 1
done

Reply

Marsh Posté le 07-02-2003 à 11:58:20    

Code :
  1. 1 #! /bin/sh
  2.       2 # ajout d'un user mysql et d'une table eponyme.
  3.       3 #
  4.       4
  5.       5 mysql -uroot -p$1 -e "CREATE DATABASE $2;"
  6.       6 echo database $2 ok ...
  7.       7 mysql -uroot -p$1 -e "GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON $        2 TO '$2'@'%' IDENTIFIED BY $3;"
  8.       8
  9.       9 echo done
  10.      10 # fin du script


 
c la 2eme ki chie.
 
edit : j'ai testé direct en console  
 

root@zaibserver:~# mysql -uroot -ppassword -e "create database toto;"
root@zaibserver:~# mysql -uroot -ppassword -e "grant select on toto to toto identified by toto;"
ERROR 1064 at line 1: You have an error in your SQL syntax near 'toto' at line 1


 
ca m'nrv


Message édité par Zaib3k le 07-02-2003 à 12:03:07
Reply

Marsh Posté le 07-02-2003 à 12:14:46    

t'es bouché ou quoi? [:dawa]
 
 
... to 'toto'@'%' identified by 'totopassword'


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 07-02-2003 à 14:05:20    

--greg-- a écrit :

t'es bouché ou quoi? [:dawa]
 
 
... to 'toto'@'%' identified by 'totopassword'


 
ok ok, pour les ''. je les ai mis. :o
 
par contre, now ca deconne encore :
 

root@zaibserver:~# ./test1.sh pass tito tito
database tito ok ...
ERROR 1046 at line 1: No Database Selected
done


 
je veux donner les droits sur la bdd et pas sur une table tito.
j'ai testé en rajoutant un "use $2;" avec le grant mais la il me dit qu'il ne trouve pas de tito.tito. normal
 
pour ajouter un user et lui donner des droits , c bien comme ca pourtant, non ?

Reply

Marsh Posté le 07-02-2003 à 14:21:18    

c bon mon script fonctionne.
 

mysql -uroot -p$1 -e "GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON $2.* TO '$2'@'%' IDENTIFIED BY '$3';"


 
ca c bon, mais apres je ne peux pas me connecter a mysql, ni par phpmyadmin, ni en console. :/
 
dans phpmyadmin, je vois l'user avec aucun droit, et dans "autres privileges" il ya bien les droits definit sur sa bdd. il me manque quoi ?

Reply

Marsh Posté le 07-02-2003 à 14:21:18   

Reply

Marsh Posté le 07-02-2003 à 15:05:41    

c bon ca marche. j'ai remplacé le @'%' par @'localhost' et ca roule. me demander pas pourquoi ca marche :D

Reply

Marsh Posté le 07-02-2003 à 15:11:05    

Zaib3k a écrit :

c bon ca marche. j'ai remplacé le @'%' par @'localhost' et ca roule. me demander pas pourquoi ca marche :D

bah vais pas te le demander.
si tu vois savoir tu peux tjs demander :D


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 07-02-2003 à 15:56:39    

--greg-- a écrit :

bah vais pas te le demander.
si tu vois savoir tu peux tjs demander :D


 
mais pourquoi ca marche maintenant ?  [:bigsmiley]  
 
 
et sais tu comment faire pour que lorsque la base existe deja, il me le dise ?


Message édité par Zaib3k le 07-02-2003 à 23:11:40
Reply

Marsh Posté le 07-02-2003 à 23:06:51    

Zaib3k a écrit :


 
mais pourquoi ca marche maintenant ?  [:bigsmiley]  
 
 
et sais tu comment faire pour que lorsque la table existe deja, il me le dise ?

parce que ce que tu fais c'est donner des droits à un user, se connectant depuis un host donné, sur une base.
 
* grant select on bazalacon to 'greg'@'blabla.com' identified by 'monpass'
 --> je ne pourrai me connecter sur la base bazalacon que depuis "blabla.com"
 
* pareil avec 'greg'@'%' ... --> je pourrai me connecter depuis n'importe quel host (% etant le 'wildcard' dans ce cas-ci) ... tu pourrais aussi faire 'greg'@'%.wanadoo.fr', je ne pourrai me connecter sur la base que depuis un host de wanadoo... etc etc...
 
* cas particulier non repris par le '%', c'est 'localhost', c-a-d la machine ou tourne la base.
 
comme apparement tu fais du php pour attaquer ta base et que manifestement les 2 sont sur la meme machine, t'as compris koi.
 
 
et pour ta 2e question, si la base (arrete de confondre), la 1e ligne de ton script generera une erreur ;)


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 07-02-2003 à 23:11:30    

arf, j'avais pas vu que je parlais de table depuis le debut. j'etais persuadé que je parlais de base. désolé
 
je vais editer tout ca.
 
merci bcp --greg--  :jap:

Reply

Marsh Posté le 07-02-2003 à 23:39:19    

pas de quoi;)
tu veux etre mon  boolay? [:dawa]


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 07-02-2003 à 23:49:21    

--greg-- a écrit :

pas de quoi;)
tu veux etre mon  boolay? [:dawa]


 
 [:tapai]  salo  :o

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed