MySQL忘记root密码的处理方法

基础材料:

MySQL5.7  CentOS7.4

操作步骤:

[root@localhost]# systemctl stop mysqld

[root@localhost]# sed -i  '/\ [mysqld\ ]/a\skip-grant-tables'  /etc/my.cnf

编辑my.cnf文件,在[mysqld]段落内添加skip-grant-tables,表示登录时跳过密码验证,

这里特别注意一下mysqld前后的\ [和\ ]中间各有一个空格(因为连起来写好像是CSDN这个编辑器的特殊符号会转义成其他东西),如果执行该命令时,请将空格去掉,或者手动修改配置,否则....

[root@localhost]# systemctl start mysqld

[root@localhost]# mysql -u root -p

直接回车登录数据库

mysql> use mysql;

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

修改密码,将new password指定为需要修改的密码

mysql> flush privileges;

刷新权限设置

mysql>quit;

[root@localhost]# sed -i 's/skip-grant-tables/# skip-grant-tables/g' /etc/my.cnf

注释掉skip-grant-tables项,以新密码登录数据库

[root@localhost]# systemctl restart mysqld

[root@localhost]# mysql -u root -p

输入新密码

###############################################################

以上在5.7.21测过通过,在5.7.17及以下版本,使用新密码登录后,执行命令时会报

ERROR 1820 (HY000): You must reset your password using ALTER USER statement;

则需要追加一步操作,重新设定root密码

mysql> SET PASSWORD = PASSWORD('new password');

###############################################################

正常登录时修改密码,通过如下命令修改:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';






  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值