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

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

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

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

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


当前回答

这是适合我的方法。

Mysql >显示数据库;

错误1820 (HY000):在执行此语句之前,您必须使用ALTER USER语句重置密码。

Mysql >卸载插件validate_password;

错误1820 (HY000):在执行此语句之前,您必须使用ALTER USER语句重置密码。

Mysql > alter user 'root'@'localhost' identified by 'root'

查询OK, 0行受影响(0.01秒)

Mysql >刷新权限;

查询OK, 0行受影响(0.03秒)

其他回答

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

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

Mysql 5.7.24先登录root

第一步:从日志中获取密码

 grep root@localhost /var/log/mysqld.log
    Output
        2019-01-17T09:58:34.459520Z 1 [Note] A temporary password is generated for root@localhost: wHkJHUxeR4)w

第二步:和他一起登录mysql

mysql -uroot -p'wHkJHUxeR4)w'

第三步:你输入新的根密码

SET PASSWORD = PASSWORD('xxxxx');

你会得到错误1819 (HY000):您的密码不满足当前的策略要求

如何解决?

SET GLOBAL validate_password_policy=LOW;

SET PASSWORD = PASSWORD('xxxxx');

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

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

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

我在mac OS X 10.10.4(Yosemite)中也遇到了同样的问题。设置密码为我工作。修改mysql密码 mysql> SET PASSWORD = PASSWORD('your_password'); 查询OK, 0行受影响,1个警告(0.01秒)

在.bash_profile中设置Mysql环境路径变量,并添加以下代码行 导出路径= $路径:/ usr /地方/ mysql / bin, 然后执行如下命令。source .bash_profile

在mysql 5.7.x(复制)中,这个问题可能会发生,因为从用户上的密码不匹配或根用户在主用户上不存在。

例如(以我为例):

我创建了一个实例,修改了根用户的密码,在复制从服务器之前,我删除了根用户。当我做slave实例时,这个警告出现在查询上:(因为我在删除root用户之前修改了master上的密码,并且slave正在从第一个日志中读取,这实际上是一个alter root user语句)

show slave status\G

所以这里有两种解决方案:

可以在主主机和从主机上创建密码相同的root用户 可以在主主机上运行查询;

并重新连接从服务器和主服务器。