关于SQL语法的问题

这个人有什么不对吗?为什么输出语法错误?   欢迎使用MySQL监视器。   命令以;结尾;或 g。你的MySQL   连接ID是169服务器版本:   5.0.51a-3ubuntu5.7(Ubuntu)      输入'help;'或' h'寻求帮助。类型   ' c'清除缓冲区。      mysql>授予所有特权。至   '根' @ 'localhost' 的        - >;查询OK,0行受影响(0.14秒)      mysql> IDENTIFIED BY'm'WITH GRANT   选项; ERROR 1064(42000):你有   SQL语法中的错误;检查   与您的MySQL对应的手册   用于正确语法的服务器版本   在'IDENTIFIED BY'new_password'with WITH GRANT附近使用   选项'第1行mysql> 问候 哈维     
已邀请:
是不是分为两行,所以MySQL客户端将其理解为两个查询而不是一个? 尝试将查询作为一行执行:
GRANT ALL PRIVILEGES ON . TO 'root'@'localhost' IDENTIFIED BY 'm' WITH GRANT OPTION;
    
最后还有一个额外的分号:
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;
这本身是无效的。     
你把一个陈述分成了两个比特。     
您已经使用了mysql命令行工具。分号结束你的sql命令,如 g或 G. 如果您不喜欢或不知道如何使用此命令行工具,则应该使用不同的工具: http://dev.mysql.com/downloads/gui-tools/5.0.html - > Mysql管理员     

要回复问题请先登录注册