MySQL密码存在数据库mysql中,所以就有了第一种方法替换法,用初始的mysql库(如果之前有备份的话,或者从其它地方拷贝过来)将现在的替换掉(MySQL的data目录下mysql目录),即可恢复密码。这种方法相当于重置,有时候我们还设置了一些特定的权限,这时候就不适合用这种方法了。第二种方法,启动MySQL的时候忽略授权表,这样客户端就可以不用密码直接连接了,更新用户表即可,步骤如下。
(1) 关闭MySQL
Windows在命令提示符下输入net stop mysql,Linux输入命令service mysql stop。
(2) 忽略授权表启动MySQL
进入MySQL的bin目录,Windows输入mysqlnt –skip-grant-tables后不要关闭,Linux输入./safe_mysqld –skip-grant-tables &。
(3) 客户端连接
进入MySQL的bin目录(Windows重新打开一个命令提示符窗口),Windows输入mysql,Linux输入./mysql。依次输入SQL命令:
> use mysql;
> update user set password=password(“new_password”) where user=”root”; (注:new_password为新设置的密码)
> flush privileges;
(4) 重新启动MySQL
关闭MySQL,Windows将刚才的窗口关闭,Linux杀掉safe_mysqld的进程。正常启动MySQL即可。