MySQL 5.7 重置root密码,试过N中方法终于找到

操作系统是windows,MySQL版本是 5.7,my.ini在另外的路径下。

已经用了一段时间,也设置了好几个用户,因为要最近想修改root密码,所以用网上的:

mysqladmin -uroot -pmy_old_pwd password my_new_pwd

来修改密码,重启服务后,发现没有修改成功。又试了几次,包括直接update mysql.user,都不成功,结果后来再试时,出现如下出错信息:

mysqladmin: connect to server at 'localhost' failed.

于是找到MySQL 5.7的官方文档:http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

按照如下步骤:

1. 修改 my.ini,在 [mysqld]下增加一行:

skip-grant-tables

2. 重启 mysql

3. 在mysql/bin目录下,执行mysql -uroot,连接上mysql

4. 参考上面官方首次,

5.7.6之后版本用如下命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
运行后出如下信息,说明没成功
Query OK, 0 rows affected (0.00 sec)


于是在用5.7.5之前版本的命令:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
运行后出如下信息,说明也没成功
Query OK, 0 rows affected (0.00 sec)

5. 再用如下命令测试:
UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPass') password_expired = 'N'
WHERE User = 'root' AND Host = 'localhost';
运行后也是: Query OK, 0 rows affected
所以下面的也就不用执行了
FLUSH PRIVILEGES;

6. 接着用如下命令,放宽where条件
update mysql.user set authentication_string=PASSWORD('newpassword') where User='root';
执行后提示:Query OK, 1 row affected...说明有戏

7. 将my.ini 修改回来,重启mysql,做测试:root用户新密码可用了,旧密码不再可用。其他用户没有受到影响。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值