如何删除MySQL root密码


195

我想删除本地用户root的密码。我怎样才能做到这一点?我错误地设置了root用户的密码。这就是为什么phpmyadmin给出错误:

#1045 - Access denied for user 'root'@'localhost' (using password: NO)


4
为什么不将您的phpMyAdmin配置为使用root密码呢?
sisve 2010年

2
MySQL文档包含有关如何在忘记密码的情况下重置根密码的说明。
Michael Madsen 2010年

请注意,从MySQL 5.7开始,默认情况下会设置一个随机根密码,并且必须validate_password先禁用该插件才能删除它。请参阅我的文章直接删除MySQL根密码要点
本杰明

Answers:


360

您需要将密码设置为root@localhost空白。有两种方法:

  1. MySQL SET PASSWORD命令:

    SET PASSWORD FOR root@localhost=PASSWORD('');
  2. 使用命令行mysqladmin工具:

    mysqladmin -u root -pType_in_your_current_password_here password ''

1
如何重置垂直数据库的密码?
花蜜2010年

4
mysqladmin -u root -pcurrent_password密码''是另一种方法。
crackity_jones

7
mysqladmin -u root -p password ''然后我需要输入密码。
crizCraig 2014年

2
@crizCraig可能是因为您的密码不是CURRENTPASSWORD,所以password参数(与其他参数不同)后面没有空格。如果您省略密码,那么它将提示您输入一个密码(doc
Jason Sperske 2014年

3
@mOna尝试这种方式:1-关闭mysql(关闭服务或将其杀死);2-创建包含一个文件SET PASSWORD FOR root@localhost=PASSWORD('');名为restore; 3通话mysqld_safe --init-file=path/to/restore; 最后登录,然后根据您的喜好再次更改密码。
达里奥

23

我也经历过这个问题,

首先,我尝试使用命令将root的密码设置为空白:

SET PASSWORD FOR root@localhost=PASSWORD('');

但是不要高兴,PHPMYADMIN使用127.0.0.1而不是localhost,我知道您会说两者是相同的,但是事实并非如此,请使用下面提到的命令完成。

SET PASSWORD FOR root@127.0.0.1=PASSWORD('');

只需将localhost替换为127.0.0.1即可。


3
为root @ localhost = PASSWORD('')设置密码; 为我工作
workdreamer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.