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

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

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

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

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


当前回答

记住版本5.7.23及以上-用户表没有列密码,而是认证字符串,所以下面的工作,而重置用户的密码。

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

其他回答

我在Mac上也有同样的问题

首先,用沙箱模式登录mysql

mysql -u <user> -p --connect-expired-password

然后,设置密码

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

Query OK, 0 rows affected, 1 warning (0.01 sec)

它适用于我~

通过https://dba.stackexchange.com/questions/118852/your-paswssword-has-expired-after-restart-mysql-when-updated-mysql-5-7-8-rcde

安装mysql工作台和mysql社区服务器后出现问题。在服务器安装期间获得生成的密码。 双击工作台中现有的本地实例会触发一个对话框,我可以在其中设置新密码。

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

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

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

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

MySQL文档

如果你用mysql -u root -p启动mysql

尝试修改用户'root'@'localhost' IDENTIFIED BY 'MyNewPass';

来源:http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

记住版本5.7.23及以上-用户表没有列密码,而是认证字符串,所以下面的工作,而重置用户的密码。

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