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

时间:2014-04-01 00:36:18

标签: mysql command-line putty

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

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

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

9 个答案:

答案 0 :(得分:99)

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

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

FLUSH PRIVILEGES;

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

修改

我在当地进行了一次测试并且有效 -

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

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

SHOW VARIABLES LIKE "%version%";

答案 1 :(得分:28)

从MySQL 5.7.6开始,使用ALTER USER

示例:

ALTER USER 'username' IDENTIFIED BY 'password';

由于:

  • SET PASSWORD ... = PASSWORD('auth_string')语法自MySQL 5.7.6起不再使用,将在未来的MySQL版本中删除。

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

答案 2 :(得分:14)

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

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

答案 3 :(得分:4)

这是WAMP v3.0.6的更新答案

changeTF

答案 4 :(得分:3)

在MySQL 5.7.6之前,这可以从命令行开始:

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

我没有安装mysql进行测试,但我认为在你的情况下它会是

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

答案 5 :(得分:1)

这对我有用。从MYSQL webpage

获得了解决方案

在MySQL中,运行以下查询:

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'New_Password';

答案 6 :(得分:0)

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

- > mysqladmin -u root password “newpassword”

而不是root可以是任何用户。

答案 7 :(得分:0)

自MySQL 8.0.18起 这对我来说很好

mysql> SET PASSWORD FOR 'user'@'localhost' = 'userpassword';

答案 8 :(得分:-1)

您的登录根目录应为/usr/local/directadmin/conf/mysql.conf。然后尝试按照

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

Host是你的mysql主机。