首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于SQL语法的问题

关于SQL语法的问题
EN

Stack Overflow用户
提问于 2010-07-19 10:56:57
回答 4查看 2.4K关注 0票数 1

有人觉得这有什么问题吗?为什么输出语法错误?

欢迎来到MySQL监视器。您的MySQL连接id是169个服务器版本:5.0.51a-3 ubuntu5.7 (Ubuntu)

键入“help;”或“\h”以表示帮助。键入'\c‘以清除缓冲区。

mysql>授予所有的特权。到'root'@'localhost‘->;查询确定,0行受影响(0.14秒)

由“m”和mysql>选项标识;错误1064 (42000):您的SQL语法出现错误;检查与MySQL服务器版本相对应的手册,以获得在第1行mysql>中使用“new_password”与mysql>选项标识的正确语法。

问候

贾维

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-19 10:59:17

它不是分了两行吗,所以MySQL客户端把它理解为两个查询,而不是一个查询?

尝试将查询作为一行执行:

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

票数 4
EN

Stack Overflow用户

发布于 2010-07-19 11:22:39

最后还有一个分号:

代码语言:javascript
复制
GRANT ALL PRIVILEGES ON . TO 'root'@'localhost' ;

您可以将一个MySQL查询拆分成几行,这样编写它没有问题:

代码语言:javascript
复制
 GRANT ALL PRIVILEGES ON . TO 'root'@'localhost'
 IDENTIFIED BY 'm' WITH GRANT OPTION;

但是,一旦MySQL看到分号(结束查询语句),它将执行缓冲区中的任何内容,在您的示例中,这是一个完整的、有效的查询(将所有特权授予根用户);但是第二行将成为一个新的查询:

代码语言:javascript
复制
   IDENTIFIED BY 'm' WITH GRANT OPTION;

它本身是无效的。

票数 4
EN

Stack Overflow用户

发布于 2010-07-19 11:01:18

你已经把一条语句分成了两部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3280418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档