2010-07-19 64 views
0

任何人有什麼錯?爲什麼輸出語法錯誤?關於SQL語法的問題

歡迎使用MySQL監視器。 命令以;或\ g。您的MySQL 連接ID爲169服務器版本: 5.0.51a-3ubuntu5.7(Ubuntu)

鍵入'help;'或'\ h'尋求幫助。輸入 '\ c'清除緩衝區。

mysql>在上授予所有特權。 TO 'root'@'localhost' - >; Query OK,0 rows affected(0.14 sec)

mysql> IDENTIFIED BY'm'WITH GRANT OPTION;錯誤1064(42000):您的SQL語法中有 錯誤;檢查位於第1行的mysql相當於你的MySQL 服務器版本正確的語法附近 'IDENTIFIED BY 'NEW_PASSWORD' WITH GRANT OPTION' 使用>

問候

哈維

的 手冊
+0

它看起來像一個邏輯行已經在兩個輸入線蔓延;爲了方便起見,你是否遵循了一條爲了分隔線條的指南? – sarnold 2010-07-19 11:00:35

回答

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管理