在一次运维过程中,发现忘记mysql密码了,通过几个blog,找到真正属于我自己的方法。
1、到linux的mysql配置文件,修改my.cnf文件
vi /etc/my.cnf
输入“i” 以插入方式修改代码;
增加一行:
skip-grant-tables
按“Esc”,退出编辑
输入“:wq!”保存并退出
2、重启mysql
service mysqld restart
3、重启mysql后,在linux环境登录
./mysql -uroot
4、连接mysql的数据库
use mysql
5、查询mysql 的user 表,authentication_string 字段里存放的就是密码
mysql> select host,user,authentication_string from user where User='root';
+-----------+------+-------------------------------------------+
| host | user | authentication_string |
+-----------+------+-------------------------------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| % | root | *A93F47B8FFB7DC9852A386E4B847B0BB3DC5057A |
| 127.0.0.1 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+-----------+------+-------------------------------------------+
3 rows in set (0.00 sec)
6、翻译“authentication_string ”里的内容
登录MD5在线破解网站免费翻译密文;(这个网好像要收费了,可以自行百度一下MD5在线破解的其它网站)
复制所查询到的 authentication_string内容到 密文栏目
选择类型mysql5 点击查询
马上得出结果
到此,密码已经获得了。
7、把my.cnf恢复原样;
vi /etc/my.cnf
输入“i” 以插入方式修改代码;
找到“skip-grant-tables”前面加入“#”注释掉:
#skip-grant-tables
按“Esc”,退出编辑
输入“:wq!”保存并退出
8、重启mysql
service mysqld restart
大功告成!