使用命令行更改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主机。