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

我正在尝试使用命令行更新数据库用户的密码,但这不适用于我。 这是我正在使用的代码:

mysql> UPDATE user SET password=PASSWORD($w0rdf1sh) WHERE user='tate256'; 

有人能告诉我这个代码有什么问题吗?

在你的代码中,尝试在单引号内附上密码。 另外,根据mysql的文档 ,下面应该工作 –

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

最后一行很重要,否则你的密码更改不会生效。

编辑 –

我在当地进行了testing,结果很顺利 –

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

我的版本是5.你可以使用下面的命令来确定你的版本 –

 SHOW VARIABLES LIKE "%version%"; 

从MySQL 5.7.6开始,使用ALTER USER

SET PASSWORD ... = PASSWORD('auth_string')语法从MySQL 5.7.6开始已被弃用,并将在未来的MySQL版本中被删除。

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

 ALTER USER user IDENTIFIED BY 'auth_string'; 

使用提问者的例子:

 ALTER USER 'tate256' IDENTIFIED BY '$w0rdf1sh'; 

注意:你应该以root用户身份login

  SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your password'); 

在MySQL 5.7.6之前,这个命令行可以工作:

 mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$w0rdf1sh');" 

我没有一个MySQL安装testing,但我认为你的情况是这样的

 mysql -e "UPDATE mysql.user SET Password=PASSWORD('$w0rdf1sh') WHERE User='tate256';" 

这是WAMP v3.0.6更新的答案

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

FLUSH PRIVILEGES;

在Windows 10中,退出当前login并在命令行上运行

– > mysqladmin -u root password “newpassword”

而不是根可能是任何用户。

您的login根应该是/usr/local/directadmin/conf/mysql.conf 。 然后尝试下面

 UPDATE mysql.user SET password=PASSWORD('$w0rdf1sh') WHERE user='tate256' AND Host='10.10.2.30'; FLUSH PRIVILEGES; 

主机是你的mysql主机。