相信不少程序员都遇到过这样的问题,想登录mysql时却忘了root密码,重装一个吧好像又有点麻烦,万一损坏了库里的数据那可不好了,那么这种情况下怎么办呢?
其实很简单,下面我们就一起看看,怎么在忘记root密码的情况下,重置root密码。
首先说一下解决这个问题的整体思路。整体的思路就是先跳过myql的认证,在没有密码的情况下登录数据库,然后重置root密码,最后在恢复认证,重启数据库就可以了。
下面以window为例,来看一下具体的操作步骤(以下方法在mysql 5.5.32 for win32上亲测有效 )
- 以系统管理员身份运行 cmd
- 在cmd窗口中执行 net stop mysql 停止mysql
- 进入mysql的bin目录 执行 mysqld --skip-grant-tables。执行完之后窗口会卡住,不用紧张,先放在那,不用管他。
- 以系统管理员身份再次运行 cmd,再打开一个cmd窗口。然后进入到mysql的bin目录下,执行mysql,然后回车。这时你应该可以顺利的登录mysql。
- 执行下面的命令,用来重置root密码
use mysql;
update user set password=password("123") where user="root";
exit;
- 执行 tasklist | findstr "mysql" 可以看到mysql 的pid号
- 执行 taskkill -PID 上一步mysql的pid -F
- 再次执行 tasklist | findstr "mysql" 这时应该没有输出了
- 执行 net start mysql 重新启动mysql
- 执行 mysql -uroot -p 然后输入 123 应该就可以顺利的登录mysql了