2010-07-19 3 views
0

кто-нибудь что не так с этим? почему выдает синтаксическую ошибку?Вопрос о синтаксисе SQL

Добро пожаловать на монитор MySQL. Команды заканчиваются на; или \ g. Ваш MySQL идентификатор соединения 169 Версия сервера: 5.0.51a-3ubuntu5.7 (Ubuntu)

Тип 'help;' или '\ h' для получения справки. Введите '\ c', чтобы очистить буфер.

mysql> ГРАНТ ВСЕ ПРИВИЛЕГИИ НА . TO 'root' @ 'localhost' ->; Запрос ОК, 0 строк затронуты (0,14 с)

mysql> ИДЕНТИФИЦИРОВАННЫЙ 'm' С GRANT OPTION; ERROR 1064 (42000): У вас есть ошибка в синтаксисе SQL; проверьте инструкцию, которая соответствует вашей версии MySQL сервера для правильного синтаксиса использования вблизи 'ОПРЕДЕЛЕННЫХ 'new_password' WITH GRANT ВАРИАНТА' в строке 1 MySQL>

С уважением

Javi

+0

Похоже, одна логическая линия была распространена на двух входных линий ; вы следуете руководству, который разделяет линии для удобства? – sarnold

ответ

3

Разве это не разбито на две строки, поэтому клиент MySQL понимает это как два запроса, а не один?

Попробуйте выполнить запрос в виде одной строки:

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

0

вы разделить один оператор на два бита.

4

Существует дополнительная точка с запятой здесь в конце:

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

Вы можете разделить запрос MySQL на несколько строк, так что нет никаких проблем писать так:

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

но когда MySQL видит точку с запятой (завершение запроса), она будет выполнять все, что находится в буфере, что в вашем случае было полным, действительным запросом (предоставить все привилегии пользователю root); но затем вторая строка становится новым запросом:

IDENTIFIED BY 'm' WITH GRANT OPTION; 

, который сам по себе недействителен.

0

Вы использовали инструмент командной строки mysql. Точка с запятой завершает вашу команду sql, например \ g или \ G.

Вы должны siwtch на другой инструмент, если вам не нравится, или знаете, как использовать этот инструмент командной строки: http://dev.mysql.com/downloads/gui-tools/5.0.html -> Mysql Administrator