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

cgh8pdjw  于 2023-04-19  发布在  Mysql
关注(0)|答案(9)|浏览(155)

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

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

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

0qx6xfy6

0qx6xfy61#

在你的代码中,尝试将密码放在单引号内。或者,按照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%";
vd8tlhqk

vd8tlhqk2#

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现在是分配密码的首选语句。
myzjeezk

myzjeezk3#

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

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

polkgigr4#

这是WAMP v3.0.6的更新答案

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

FLUSH PRIVILEGES;
ldfqzlk8

ldfqzlk85#

在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';"
o75abkj4

o75abkj46#

在windows10中,只需退出当前登录并在命令行上运行此命令
--〉mysqladmin -u root password “newpassword”
其中代替根可以是任何用户。

llmtgqce

llmtgqce7#

从MySQL 8.0.18开始,这对我来说很好用

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

hpxqektj8#

这对我很有效。从MYSQL webpage得到解决方案
在MySQL中运行以下查询:

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

vjrehmav9#

您的登录根应该是/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主机。

相关问题