2010-06-13 102 views
158

我想删除localhost中root用户的密码。我怎样才能做到这一点?我错误地设置了root用户的密码。这就是为什么phpMyAdmin是给了一个错误:如何删除MySQL root密码

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

+4

为什么不配置您的phpMyAdmin使用root密码呢? – sisve 2010-06-13 11:27:20

+1

MySQL文档包含有关[如何重置root密码](http://dev.mysql.com/doc/refman/5.5/en/resetting-permissions.html)的说明,以备忘记。 – 2010-06-13 12:03:49

+0

请注意,从MySQL 5.7开始,默认情况下会设置一个随机root密码,如果不先禁用“validate_password”插件,则无法删除它。查看我的文章[删除MySQL root密码](https://medium.com/@benmorel/remove-the-mysql-root-password-ba3fcbe29870)或[this gist](https://gist.github.com/ BenMorel/3aa86d9db6c6751b6ab77b3a939938fc)。 – Benjamin 2017-09-07 12:15:59

回答

302

您需要为[email protected]设置的密码为空。有两种方法:

  1. MySQL的SET PASSWORD命令:

    SET PASSWORD FOR [email protected]=PASSWORD(''); 
    
  2. 使用命令行mysqladmin工具:

    mysqladmin -u root -pType_in_your_current_password_here password '' 
    
+0

如何重置密码数据库的密码? – nectar 2010-06-13 13:18:18

+4

mysqladmin -u root -pcurrent_password password''是另一种方法。 – 2013-03-21 23:31:52

+3

我需要执行'mysqladmin -u root -p password'''然后输入密码。 – crizCraig 2014-04-13 21:30:35

20

我也经历过这个问题,

首先,我试图用我的命令根口令设置为空:

SET PASSWORD FOR [email protected]=PASSWORD(''); 

不过不要高兴,PHPMYADMIN使用127.0.0.1不是localhost,我知道你会说都是相同的,但认为并非如此,使用下面提到的命令,你就完成了。

SET PASSWORD FOR [email protected]=PASSWORD(''); 

只需用127.0.0.1替换localhost即可。

+3

root @ localhost = PASSWORD('');为我工作 – workdreamer 2013-02-13 10:13:21