在登陆 MySQL 时 , 密码遗忘会显示以下错误信息 .
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
如图 :
这种错误由密码错误引起 ,那么密码丢失、遗忘情况下,如何解决 ?
解决办法就是重置密码
1 . 重置密码的第一步就是跳过 MySQL 的密码认证过程 , 方法如下 :
vi /etc/my.cnf (注意 : windows下修改的是 my.ini)
如图 :
在my.cnf文件中搜索mysqld , 定位到 [mysqld] 文本段 :
/mysqld (在vi编辑状态下直接输入该命令可搜索文本内容)
如图 :
在 [mysqld] 后面任意一行添加 ‘skip-grant-tables’ 用来跳过密码验证的过程
如图 :
保存文档并退出 , 操作如下 :
- 按 ESC键 退出编辑模式
输入命令
:wq
回车
如图 :
如果需要查看是否保存成功 , 可以执行以下命令 :
cat /etc/my.cnf
2 . 接下来重启MySQL
重启MySQL , 有两种方式
/etc/init.d/mysqld restart
service mysqld restart
如图 :
3 . 重启之后 , 输入 mysql 即可进入 mysql
4 . 使用 sql 修改 root 密码
执行 sql 语句如下 :
use mysql; (进入 mysql数据库)
update user set password=password("你的新密码") where user="root"; (修改密码)
flush privileges;
(刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。)
quit; (退出)
如图 :
命令执行结束 , root 账户已经被重置为新密码 .
5 . 编辑 my.cnf , 去掉第一步添加的内容 , 然后重启 MySQL .
注销或删除以上内容
重启MySQL数据库
大功告成
有一些新手 , 在刚接触linux时可能比较迷糊 , 目录结构不清楚 , 在自己的平台找不到 my.cnf 文件 .
那么可以通过以下方式进行搜索 :