相信大家都遇到过这种情况,在使用命令行运行的 MySQL 中修改密码时,可能会遇到如下的错误提示:
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 'xxxxxxxxxxxxxxxxxxxxxxxxx' at line 1
这实际上是由于 MySQL 的不同版本支持的修改密码的语法不同所造成的。接下来,我们将详细介绍不同版本的 MySQL 支持的修改密码的正确语法。
5.6 版本
在 MySQL 5.6 版本中,可以使用以下两种方式来修改密码:
-
使用
UPDATE
语句直接修改mysql.user
表中的password
字段:UPDATE mysql.user SET password=PASSWORD('123456') WHERE User='root' AND Host='localhost'; FLUSH PRIVILEGES;
-
使用
SET PASSWORD
语句来设置密码:SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
5.7 版本及以上
从 MySQL 5.7 版本开始,password
字段被重命名为 authentication_string
,因此需要使用新的字段名来更新密码:
UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
8.0 版本及以上
到了 MySQL 8.0 版本,之前的命令不再适用,取而代之的是以下两种方法:
-
使用
ALTER USER
语句来更改用户密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
-
使用
SET PASSWORD
语句来设置密码(注意,这里不需要使用PASSWORD()
函数):SET PASSWORD FOR 'root'@'localhost' = '123456';
小贴士
- 在执行上述任何一条命令之前,请确保已经登录到 MySQL 服务器,并且有足够的权限来执行这些操作。
- 执行完修改密码的命令后,记得执行
FLUSH PRIVILEGES;
来刷新权限,使更改立即生效。 - 如果您不确定当前使用的 MySQL 版本,可以通过运行
SELECT VERSION();
命令来查看。
转载:MySQL修改密码时,报错ERROR 1064 (42000)【新版MySQL修改密码命令有所变更】_error 1064 (42000):-CSDN博客