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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值