分享

Access denied for user 'root'@'localhost' (us...

 三星蓝 2012-10-21

Access denied for user 'root'@'localhost' (using password: NO)的解决办法

错误

MySQL 返回:

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

今天用phpmyadmin连接mysql时遇到了上面的提示,在网上随便找了一下发现答案都不怎么明了,最后自己摸索了下算是解决了。

看到错误提示上还有这么一行:

phpMyAdmin 试图连接到 MySQL 服务器,但服务器拒绝连接。您应该检查 config.inc.php 中的主机、用户名和密码,并且确定这些信息与 MySQL 服务器的管理员所给出的信息一致。

我想应该也是跟phpmyadmin里的配置有关,事实也是如此。

打开config.inc.php里看到里面有两行就是问题的关键:

$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';

这一般是phpmyadmin里的默认设置,用户名为root,密码为空,当本机建立mysql数据库时可以直接连接。所以一般第一次用phpmyadmin连接时都会成功,但后面为什么会提示拒绝连接呢?因为root密码(或者别的用户名)已经修改过了,有可以在是命令行里改的也有可以是在phpmyadmin里改的:

如果设置了使用密码的话那么下面的登入密码也需要同时修改,否则只能改配置文件config.inc.php

我记得默认密码是空的,后来加上就连接拒绝了,现在再看到刚才那两行代码:

$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';

其实指的就是登入信息里的用户名和密码,如果留空那那么错误提示里就是(using password: NO),如果随便打几个字上去就那就是(using password: YES),嗯,如果你把改过的密码敲上去,那么就可以登录成功了。当然这是本地登录时可以设置固定用户登录(使用配置文件),如果想出现提示输入用户名和密码的对话框,那么需要设置另一行代码:

$cfg['Servers'][$i]['auth_type'] = 'config'; //还可以用http或者cookie方式

当改成http时就会出现对话框,用cookie就是按浏览器进程。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多