修改密码时Mysql报错1064

Posted

技术标签:

【中文标题】修改密码时Mysql报错1064【英文标题】:Mysql error 1064 while changing password 【发布时间】:2018-08-09 11:38:59 【问题描述】:

在尝试按照this 解决方案中给出的步骤更改mysql密码时,我收到以下错误-

mysql> UPDATE mysql.user SET authentication_string = PASSWORD('letsrock') WHERE User = 'root' AND Host = 'localhost';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('letsrock') WHERE User = 'root' AND Host = 'localhost'' at line 1

mysql 中是否有更新命令的新语法或什么?我使用的是 8.0.12 版本。

【问题讨论】:

您找到解决方案了吗?我面临着类似的问题。 【参考方案1】:

'user' 和 'host' 都是保留字,如果不将它们括在反引号中,就不能用作标识符。像这样:

UPDATE mysql.user 
SET authentication_string = PASSWORD('letsrock') 
WHERE `User` = 'root' AND `Host` = 'localhost';

见:https://dev.mysql.com/doc/refman/8.0/en/keywords.html

【讨论】:

保留字,具体来说。 啊,是的,当然。最好在每个单词后面加上(K)和(W),而不是在“保留关键字”后面只有一个(R),因为“保留词”也以“R”开头......我改变了答案.

以上是关于修改密码时Mysql报错1064的主要内容,如果未能解决你的问题,请参考以下文章

关于mysql修改密码 set password for root@localhost = password('xxx');报错解决方法

mysql - 修改密码报错

mysql修改用户密码报错

MYSQL8.0以上版本ROOT密码报错及修改

mysql8.0以上版本ROOT密码报错及修改,mysql无密码设置密码

mysql8.0以上版本ROOT密码报错及修改,mysql无密码设置密码