我最近安装了MySQL,似乎在安装后我必须重置密码。它不让我做别的事。

现在我已经用通常的方式重置了密码:

update user set password = password('XXX') where user = root;

(顺便说一句:我花了很长时间才发现MySQL出于某种奇怪的原因将字段“password”重命名为“authentication_string”。我对这样的变化感到很不安。

不幸的是,似乎我需要改变密码不同的方式,我不知道。也许在座有人已经遇到过这个问题了?


当前回答

如果您使用MySQL 5.7.6及以上版本:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

如果你使用MySQL 5.7.5及更早版本:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

MySQL文档

其他回答

这招对我很管用:

ALTER USER(用户名)

我在这里找到的: http://dev.mysql.com/doc/refman/5.7/en/alter-user.html#alter-user-current

如果这不是你第一次设置密码,试试这个方法:

mysql> UPDATE mysql.user SET Password=PASSWORD('your_new_password')
           WHERE User='root'; 

如果你得到以下错误,很有可能你以前从未设置过密码:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 

第一次设置密码:

mysql> SET PASSWORD = PASSWORD('your_new_password');
Query OK, 0 rows affected, 1 warning (0.01 sec)

参考:https://dev.mysql.com/doc/refman/5.6/en/alter-user.html

MySQL 5.7。X你需要切换到本地密码才能改变它,比如:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';

当你使用SET PASSWORD = PASSWORD('your_new_password');它可能会为此崩溃

错误1819 (HY000):您的密码不符合当前策略 需求)

.你可以使用SET GLOBAL validate_password_policy=LOW;去解决它。

如果您使用MySQL 5.7.6及以上版本:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

如果你使用MySQL 5.7.5及更早版本:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

MySQL文档