MySQL密码重置

一、通过命令行修改

1
2
3
service mysql stop # 先停掉mysql服务, lnmp中的是 lnmp mysql stop
mysqld_safe --skip-grant-tables --skip-networking & # 以安全模式启动mysql
mysql -uroot

进入mysql后执行以下命令即可

1
2
3
4
use mysql;
update user set password=PASSWORD("Your password ") where User='root';
flush privileges;
quit;

退出再重启mysql即可!

二、通过配置修改

mysql忘记密码时需要用到参数skip-grant-tables,可以在配置文件中,也可以在mysqld执行的时候带上该参数。

操作步骤类似:vi /etc/my.cnf[mysqld]的段中加上一句:skip-grant-tables 保存并且退出vi。重启mysqld,就可以通过root无密码方式进入mysql报表,再进行密码重置:

1
2
3
4
5
6
7
USE mysql;
UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root';
flush privileges ;
quit;
-- mysql 5.7:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');

重置后,记得重启mysqld!

还有更多方法,参考:http://blog.51cto.com/lxsym/477027