使用命令行更改mysql用户密码

use*_*572 77 mysql command-line putty

我正在尝试使用命令行更新数据库用户的密码,但这对我不起作用.这是我正在使用的代码:

mysql> UPDATE user SET password=PASSWORD($w0rdf1sh) WHERE user='tate256';
Run Code Online (Sandbox Code Playgroud)

有人能告诉我这段代码有什么问题.

hel*_*boy 107

在您的代码中,尝试在单引号内包含密码.或者,根据mysql 的文档,以下应该工作 -

SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD('cleartext password');

FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)

最后一行很重要,否则您的密码更改将无法生效.

编辑:

我在当地进行了一次测试,它起作用了 -

mysql>  set password for 'test' = PASSWORD('$w0rdf1sh');
Query OK, 0 rows affected (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

我是版本5.您可以使用以下命令来确定您的版本 -

SHOW VARIABLES LIKE "%version%";
Run Code Online (Sandbox Code Playgroud)

  • 当我这样做时,它会在意外令牌附近返回语法错误(' (3认同)

Gov*_*Rai 32

从MySQL 5.7.6开始,使用 ALTER USER

例:

ALTER USER 'username' IDENTIFIED BY 'password';
Run Code Online (Sandbox Code Playgroud)

因为:

  • SET PASSWORD ... = PASSWORD('auth_string') 从MySQL 5.7.6开始不推荐使用语法,并且将在以后的MySQL版本中删除.

  • SET PASSWORD ... = 'auth_string'语法不被弃用,但ALTER USER现在是分配密码的首选语句.

  • 在 mariaDb 中给出错误 `ERROR 1064 (42000): 你的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解在“USER 'root' IDENTIFIED BY”附近使用的正确语法 (2认同)

小智 14

注意:您应该以root用户身份登录

 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your password');
Run Code Online (Sandbox Code Playgroud)


Rob*_*ana 6

这是 WAMP v3.0.6 的更新答案

UPDATE mysql.user 
SET authentication_string=PASSWORD('MyNewPass') 
WHERE user='root';

FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)