mysql 的root密码忘记了

本文介绍了一种在忘记MySQL管理员密码时通过非root用户登录并修改密码的应急解决方法,包括杀死mysql进程、启动mysqld_safe、不验证密码登录、修改密码等步骤。适用于MySQL版本5.7及以上。

一、经常不使用root用户登录。导致密码忘记

        1、第一步 

                        kill 掉mysql  的进程,用命令查看mysql的活动的进程,kill -9 pid 不管用,用killall mysqld 就可以了

                       >ps  -ef|grep mysql

                        看到如下信息:

                          mysql    28202     1  0 00:24 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe
                        mysql    28552 28202  2 00:24 ?        00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql            --plugin- dir=/usr/lib/mysql/plugin --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
root     28579 27404  0 00:25 pts/18   00:00:00 grep --color=auto mysql

    执行命令:

    >killall mysqld 关闭mysql服务器进程

第二步、用不检查权限的命令去启动mysql服务器

    mysqld_safe  --skip-grant-tables & 

第三步、执行命令mysql 或者 mysql -u root 总之不用输入密码验证

>mysql

第四步、修改密码

mysql>update mysql.user set password=PASSWORD('新密码') where user='root'

mysql> flush privileges;

mysql>exit;

退出密码修改成功
 

  mysql版本5.7用下面的sql语句修改              

使用mysql连接server

更改密码: update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';

 

*特别提醒注意的一点是,新版的mysql数据库下的user表中已经没有Password字段了

而是将加密后的用户密码存储于authentication_string字段

mysql> flush privileges;

mysql> quit;

 

 

 

 

 

转载于:https://my.oschina.net/u/1421591/blog/651114

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值