解决MySQL忘记密码重新登录

396 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

mysql密码的设置

建议第二种(第一种有时不行)

第一种:不用登录进mysql
	win+Q 搜索cmd 选中命令提示符右击管理员登录。

	输入指令:mysqladmin -uroot -p password  123456

	上述命令参数说明:-u 指用户 -p指密码

	上述指令意思:以root用户登录 设置密码为123456




第二种:以root用户登录mysql

	先登录mysql,修改mysql数据库中的表user的用户的密码

	指令:update user set password=password('123456') where user="root";

	指令解释:修改表设置user为root的记录的密码为123456

MySQL修改密码

(建议第二种方法)

第一种不登陆mysql:

	修改密码指令:mysqladmin -uroot -p123456 password  123abc;

	上述指令意思:以root用户登录将密码123456修改为123abc


第二种登录mysql:

	方法:修改mysql数据库中表user

	指令:update user set password=password('newmima') where user="root";

密码忘记怎么办?

大致方法是绕开Mysql的权限认证,就可直接不用密码登录,从而修改mysql默认user的用户登录密码。

具体方法如下:

1.绕开权限表

管理员方式进入cmd,先停止当前mysql服务输入指令net stop MySQL

然后绕过权限表输入指令:mysqld --skip -grant-tables

2.打开新cmd管理员身份

输入指令: mysql 回车就能直接登录进入mysql

3.修改数据库中的表设置密码

update user set password=password(“123456”) where host=“localhost” and user=“root”;

为什么不直接password=”123456“呢 而用password=password(‘123456’)这是因为放入到数据库中的密码不能是明文的,而是要加密的。所以使用他自带的函数password()

4.刷新权限

使用如下命令刷新权限: flush privileges;

然后杀死之前绕开权限表的进程,这样我们才能以正常方式登录。

管理员身份进入cmd

输入指令:tasklist |findstr mysql 查询mysql进程

杀死进程输入指令:taskkill /F /pid 进程号

上述指令参数说明: /F 表示强制 /pid表示进程号 后面32312是tasklist |findstr mysql查询得到的进程号

5.重新启动mysql服务

进入cmd 输入: net start MySQL

然后输入登录mysql的命令: mysql -uroot -p