[英]Change mysql user password using command line
我正在尝试使用命令行更新数据库用户的密码,但它对我不起作用。 这是我正在使用的代码:
mysql> UPDATE user SET password=PASSWORD($w0rdf1sh) WHERE user='tate256';
有人能告诉我这段代码有什么问题吗?
在您的代码中,尝试将密码括在单引号内。 或者,根据 mysql 的文档,以下应该有效 -
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%";
ALTER USER
例子:
ALTER USER 'username' IDENTIFIED BY 'password';
因为:
SET PASSWORD ... = PASSWORD('auth_string')
语法自 MySQL 5.7.6 起已弃用,并将在未来的 MySQL 版本中删除。
SET PASSWORD ... = 'auth_string'
语法没有被弃用,但ALTER USER
现在是分配密码的首选语句。
注意:您应该以root用户身份登录
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your password');
这是 WAMP v3.0.6 的更新答案
UPDATE mysql.user
SET authentication_string=PASSWORD('MyNewPass')
WHERE user='root';
FLUSH PRIVILEGES;
在 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';"
在 Windows 10 中,只需退出当前登录并在命令行上运行它
--> mysqladmin -u root password “newpassword”
而不是 root 可以是任何用户。
这对我有用。 从MYSQL 网页得到解决方案
在 MySQL 中运行以下查询:
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'New_Password';
从 MySQL 8.0.18 开始,这对我来说很好用
mysql> SET PASSWORD FOR 'user'@'localhost' = 'userpassword';
您的登录根目录应该是/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 主机。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.