2010-07-19 7 views
0

Quel est le problème avec ce? pourquoi renvoie une erreur de syntaxe?Question sur la syntaxe SQL

Bienvenue sur le moniteur MySQL. Les commandes se terminent par; ou \ g. Votre identifiant de connexion MySQL est 169 Version du serveur: 5.0.51a-3ubuntu5.7 (Ubuntu)

Type 'help;' ou '\ h' pour de l'aide. Tapez '\ c' pour effacer le tampon.

mysql> ACCÉDER À TOUS LES PRIVILEGES AU . A 'root' @ 'localhost' ->; Requête OK, 0 lignes affectées (0.14 sec)

mysql> IDENTIFIÉ PAR 'm' AVEC SUBVENTION OPTION; ERREUR 1064 (42000): Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'identified by 'new_password' AVEC GRANT OPTION' à la ligne 1 mysql>

Cordialement

Javi

+0

Il ressemble à une ligne logique a été étalé sur deux lignes d'entrée ; suivez-vous un guide qui divise les lignes à des fins de commodité? – sarnold

Répondre

3

N'est-il pas divisé sur deux lignes donc client MySQL le comprend comme deux requêtes pas un?

Essayez d'exécuter la requête sur une seule ligne:

GRANT ALL PRIVILEGES ON . TO 'root'@'localhost' IDENTIFIED BY 'm' WITH GRANT OPTION;

0

vous avez divisé une instruction en deux bits.

4

Il y a un point-virgule supplémentaire ici à la fin:

GRANT ALL PRIVILEGES ON . TO 'root'@'localhost' ; 

Vous pouvez diviser une requête MySQL en plusieurs lignes, donc il n'y a pas de problème écrit comme ceci:

GRANT ALL PRIVILEGES ON . TO 'root'@'localhost' 
IDENTIFIED BY 'm' WITH GRANT OPTION; 

mais une fois que MySQL voit un point-virgule (terminant une requête) il va exécuter tout ce qui est dans le tampon, ce qui dans votre cas était une requête complète et valide (accorder tous les privilèges à l'utilisateur root); mais alors la deuxième ligne devient une nouvelle requête:

IDENTIFIED BY 'm' WITH GRANT OPTION; 

ce qui en soi n'est pas valide.

0

Vous avez utilisé l'outil de ligne de commande mysql. Un point-virgule termine votre commande sql comme \ g ou \ G.

Vous devez siwtch à un autre outil si vous ne l'aimez pas ou savoir comment utiliser cet outil de ligne de commande: http://dev.mysql.com/downloads/gui-tools/5.0.html -> Mysql Administrateur