前言
上次电脑中的 数据库突然登录不上了,显示我的密码错误。
但是我自己并没有动过我的数据库,弄了好久总算解决,在这里记录。
这里的方法好像会造成数据库数据的丢失,当时记录的不是很详细,现在有的同学用这个做直接丢失了数据。然后我从别的博客里看到了其他方法,在这里也记录一下。
跳过权限表验证方法
- 关闭正在运行的MySQL服务。net stop mysql
- 转到mysql\bin目录: cd C:\program files\mysql\bin;
- 输入mysqld --skip-grant-tables 回车。 --skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
- 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了,也不能关闭)。转到mysql\bin目录: cd C:\program files\mysql\bin;
- 输入mysq l回车,如果成功,将出现mysql >
- 链接权限数据库:use mysql;
- 改密码:update user set password=password(“admin”) where user=“root”;(别忘了最后加分号)
5.7的是 update user set authentication_string=password(“admin”) where user=“root”; - 刷新权限(必须步骤):flush privileges;
- 退出 quit。
- 注销系统,再进入。dos下,net start mysql,net mysql -uroot -padmin可以登录。
文件中查找
如果一开始没有,还是建议不要采用这种方法了。我今天试了一下,找到了那个密码也登陆不进去。具体的也不太明白。
1.首先查看自己的MySQL安装目录下有没有data文件夹,和bin目录是同级的。要是有就删除,然后执行下列操作。没有就直接执行操作:
2. 以管理员身份运行 cmd。遇到个同学,可能我强调的不够明显,就没有以管理员身份运行,然后出现以下问题:
3. 输入命令:mysqld --initialize
,这个之后 重新登录时会产生一个随机密码。存在data文件夹中。查找方式:
从计算机文件夹里找到这个随机密码:
文件目录:**mysql\data\ .err 文件 (这里根据你自己的mysql安装地址);
这个可能是一个隐藏地址,搜索 *.err 就可以找出来
里面有一个 A temporary password is....
后面会跟密码
如果没有,就关闭MySQL服务,删除data文件夹,再重新以管理员身份运行,然后查找。
3.进入到mysql中
mysql> set password for root@localhost = password('123');
改密码
完成
还有之前显示服务器无法启动,第一步打开电脑的服务,确定mysql已经启动。