程序架构

当前位置/ 首页/ 程序架构/ 正文

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


应该是你配置文件中的设定与 MySQL 默认权限账户(没有密码的 root)不对应造成的。
在phpMyAdmin中,使用文件config.inc.php保存用户名和密码,当需要更换用户或用户口令更改时,必须修改config.inc.php文件,然后再上传。

具体原因:
错误

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就是按浏览器进程。

 

解决方案:

填写$cfg['Servers'][$i]['password'] = ''; 对应密码为你上图“更改密码”中输入的密码即可


																		

相关热词搜索:mysql

分享到:

我要评论

微信订阅

打开微信,点击底部的“通讯录”,点击右上角的 “添加” 搜号码 andk_in 或查找公众号 莎龙 即可。