装完mysql过了半个月没用,今天登陆的时候提示密码不对,试了半天是在试不出来,查了下网上的说法好像没有办法重新找回,只能重置新密码,这......
google搜了下mysql忘记密码,大家被这个折腾的不轻啊,文章抄来抄去,试了一个并没有什么用,重启电脑后又不行了。最后看到有位仁兄提到官方有给解决方法,官方应该相对靠谱吧,照着做一下!
先给出官方链接 https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
如果你能照着链接一步步做没问题那下面就不用看了,不用浪费时间了,如果遇到问题了可以看下下面的描述,看能否对您有所帮助。
仔细看下官方的描述,正式开始前的2段话特别重要,关系到下面你能否顺利的执行,可是我刚开始还是没看懂。
- 第一步是什么意思,命令行登录到启动 MySql server 运行的用户?我的MySql是自动启动的,我也不知道是哪个用户启动了MySql,不管它执行第二步吧(如果你刚好是启动MySql的用户,那后面应该会一路顺风,如果不是往下看吧)
-
定位到pid文件
官方提到了pid文件可能的位置,但是没有具体给出来,用自己的命令行试着找了下,好像在/usr/local/mysql/data/ 文件夹下,可是当我想进到/usr/local/mysql/data/ 文件夹下看看到底文件名是什么的时候
加了sudo 执行cd进入文件夹还是进不去。突然意识到官方第一步之前那段话是什么意思了,如果是启动mysql server的用户应该有进入到这个文件夹的权限,可是我实在不知道是哪个用户启动的mysql server,好像还有中切换用户的方法
sudo su
这么切换了之后,文件夹终于能进去了,下面找.pid文件.pid结尾的文件有3个实在不知道是哪个,一个一个试,最后试到了下面这个有效
kill `cat /usr/local/mysql/data/mysqld.local.pid`
// 执行完上面这条命令后,从系统偏好mysql里面能看到MySql Server被stop了,可是没过2秒又自动重启了,什么情况?
先不管MySql Server自动重启的情况,准备做下一步吧
- 先用笔记下你想设置的新密码,用新密码准备命令 ALTER USER 'root' @'localhost' IDENTIFIED BY 'MyNewPass' (MyNewPass替换成你要新设置的密码)
- 把上一步准备好的命令保存在一个txt文件里面,比如你保存的文件名是mysql-init,路径是/usr/shi
- 执行命令
// usr/shi/mysql-init 替换为你实际保存的路径
mysqld --init--file=/usr/shi/mysql-init &
考虑到上面第2步kill了server之后,它又自动启动了,这里这条命令在第二部之后里面执行,以防不生效
到这里重新登录数据库,新密码已经生效了
mysql -u root -p
// 输入新密码
3、4两步使用的文件也可以删了,重启电脑,重新登录数据库,没问题新密码生效,喜极而泣!