为phpMyAdmin修复用户'root'@'localhost'的访问被拒绝

时间:2013-10-20 20:18:23

标签: php mysql phpmyadmin wamp

我在PC上使用WAMP Server 2.2。在phpMyAdmin(版本5.5.24)中,我编辑了“root”用户(使用“localhost”主机)并为其指定了“root”密码。这是我试图恢复的一个大错误。现在当我去 localhost / phpmyadmin / 时,我在左边看到数据库菜单,但是主框架有一个错误,上面写着:

#1045 - Access denied for user 'root'@'localhost' (using password: NO)
phpMyAdmin tried to connect to the MySQL server, and the server rejected the 
connection. You should check the host, username and password in your 
configuration and make sure that they correspond to the information given 
by the administrator of the MySQL server.

如果我转到 127.0.0.1/phpmyadmin ,我会收到错误,一切正常。

我尝试将用户密码更改回无密码;我尝试修改config.inc.php文件以添加新密码(但这使得phpMyAdmin完全错误输出);我尝试删除并重新创建root / localhost用户。似乎没什么用。 root / localhost用户似乎没有密码和所有权限,但错误仍然存​​在。

任何想法或如何在不重新安装WAMP的情况下将此用户的访问权限恢复正常?

17 个答案:

答案 0 :(得分:70)

config.inc下查找C:\wamp\apps\phpmyadmin3.5.1个文件 在这个文件里找到  这一行

$cfg['Servers'][$i]['password'] =";

并将其替换为

$cfg['Servers'][$i]['password'] = 'Type your root password here';

答案 1 :(得分:22)

在我更改了数据库中的密码后,我遇到了同样的问题。我做的是 编辑我之前更改的更新密码,我没有在config.inc.php和相同的用户名中更新 在 D:\ xamp \ phpMyAdmin \ config.inc

$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = **'root'**;
$cfg['Servers'][$i]['password'] = **'epufhy**';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';

答案 2 :(得分:13)

在phpMyAdmin页面中更改了我的“root”的密码后,我遇到了同样的问题,并且还在寻找互联网上的解决方案,但未能得到我需要的答案,所以我查看了phpMyAdmin目录中的文档。

转到并编辑文件

\modules\phpmyadmin414x140123114237\config.sample.inc.php

寻找行

$cfg['Servers'][$i]['auth_type'] = 'config'

并将'config'更改为'http',这样您就可以在使用浏览器访问phpMyAdmin页面时输入用户名和密码。

查看相同phpMyAdmin目录(phpmyadmin414x140123114237\doc\html)下的文档文件以获取帮助并搜索$cfg['Servers'][$i]['auth_type'],您将看到有关如何登录phpMyAdmin页面的4个选项。

答案 3 :(得分:5)

在C:\ xampp \ phpMyAdmin下找到config.inc.php文件,并在任何编辑器中打开它。 找到以下行:

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

在引号内输入所选密码。另外,为了使localhost / phpmyadmin要求输入用户名和密码,请找到以下行:

$cfg['Servers'][$i]['auth_type'] = 'config';

将以上行更改为:

$cfg['Servers'][$i]['auth_type'] = 'cookie';

答案 4 :(得分:4)

嗯..这对我来说似乎很奇怪,但它突然有效!!

我所做的完全是:

  1. 导航到phpMyAdmin文件夹,编辑文件“config.inc.php”
  2. 查找该行:$ cfg ['Servers'] [$ i] ['password'] ='';
  3. 在''之间添加了任何密码,让我们说'1234'
  4. 重新加载localhost / phpmyadmin& 127.0.0.1/phpmyadmin(两者都显示相同的错误)
  5. 将“config.inc.php”恢复为旧状态(已删除密码)
  6. 重做第4步
  7. 突然间它起作用了!

答案 5 :(得分:3)

如果您有mysql的现有密码,请按以下方式编写:

C:\ wamp \ apps \ phpmyadmin3.5.1 下找到config(dot)inc文件。在此文件中找到这一行

$cfg['Servers'][$i]['password'] =";

并将其替换为

$cfg['Servers'][$i]['password'] = **'your-password'**;

答案 6 :(得分:3)

使用$cfg['Servers'][$i]['auth_type'] = 'config';我认为是不安全的。

使用带$cfg['Servers'][$i]['auth_type'] = 'cookie';的Cookie更好。

我还补充说:

$cfg['LoginCookieRecall'] = true;

$cfg['LoginCookieValidity'] = 100440;

$cfg['LoginCookieStore'] = 0;  //Define how long login cookie should be stored in browser. Default 0 means that it will be kept for existing session. This is recommended for not trusted environments.
$cfg['LoginCookieDeleteAll'] = true; //If enabled (default), logout deletes cookies for all servers, otherwise only for current one. Setting this to false makes it easy to forget to log out from other server, when you are using more of them.

我在phi.ini中添加了这个

session.gc_maxlifetime=150000

答案 7 :(得分:2)

@Dagon有正确的想法,但在细节方面有点短暂。

如果您使用访问127.0.0.1/phpmyadmin并仔细查看在MysQL中设置的用户,您应该会看到root用户名的3个版本。

这是因为在MySQL中,每个用户ID都与一个HOST相关联,即允许用户登录的PC(IP地址)。所以你的3''root'userid实际上是同一个用户ID,允许从3个单独的HOSTS登录。通常开箱即用的'root'有3个HOSTS设置,127.0.0.1,localhost和:: 1

这些是: -

localhost是从您的HOSTS文件创建的THIS MACHINE的别名(c:\ windows \ system32 \ drivers \ etc \ hosts)

127.0.0.1是THIS MACHINE的IPv4环回IP地址

:: 1是THIS MACHINE的IPv6环回IP地址

您可能遇到的是您为root@127.0.0.1设置了密码,但没有为其他任何密码设置密码。 现在你的浏览器将'arbtrarily'决定使用:: 1或127.0.0.1作为主机ip,所以当它使用:: 1时你的登录将会失败。

所以使用127.0.0.1/phpmyadmin登录并更改所有3个“root”用户名以使用相同的密码,您不应再看到此问题。

还要确保您的HOSTS文件包含这两个条目

127.0.0.1  localhost
::1        localhost

答案 8 :(得分:2)

对我有用的是什么:

转到config.inc.php

更改$ cfg ['服务器'] [$ i] [' AllowNoPassword'] = true; 至 $ cfg ['服务器'] [$ i] [' AllowNoPassword'] = false;

更改$ cfg ['服务器'] [$ i] ['密码'] ='';

$ cfg ['服务器'] [$ i] ['密码'] =' &#39 ;;

更改

$ cfg ['服务器'] [$ i] [' auth_type'] =' config';

$ cfg ['服务器'] [$ i] [' auth_type'] =' http';

重新加载页面http://localhost/phpmyadmin

输入:root 传球:(空)

现在您可以访问它了。 :)

答案 9 :(得分:2)

要解决上述错误: -

a)  Open Mysql console from the tray of WAMP server

b)  It will ask for password(you might have set this password earlier when u installed MySql in your system)(In my case it is admin)

c)  Enter admin (press enter)

现在这意味着你的phpmyadmin没有为你的MySql设置密码而且无法连接MySql,但是你可以通过提供密码来连接你的MySql Server

For this Open config.inc file from the below path
C:\wamp\apps\phpmyadmin4.1.14

并替换此行

$cfg['Servers'][$i]['password'] =’ ’;
to `$cfg['Servers'][$i]['password'] = 'admin';`

我希望它会起作用..

答案 10 :(得分:2)

我使用此网址输入phpMyAdmin http://localhost:2145/phpmyadmin,但收到以下错误:
    “phpMyAdmin尝试连接到MySQL服务器,服务器拒绝连接。您应该检查配置中的主机,用户名和密码,并确保它们对应于MySQL服务器管理员提供的信息”
我的config.inc.php文件是

$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['host'] = 'localhost:2145';
$cfg['Servers'][$i]['connect_type'] = 'cookie';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = true;
/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = '';
$cfg['Servers'][$i]['controlpass'] = '';

这个改变解决了我的错误

$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = true;

然后

sudo service mysql stop
/opt/lampp/lampp start

问题解决了

答案 11 :(得分:1)

XAMPP \成功运行/ config.inc

查找 -

$ cfg ['Servers'] [$ i] ['auth_type'] ='config'

并将'config'更改为'http',这样您就可以在使用浏览器访问phpMyAdmin页面时输入用户名和密码。

答案 12 :(得分:1)

还要注意"设置" (即localhost / phpmyadmin / setup)处理"无密码"的方式有错误。选项。虽然它创建了一行说:

$cfg['Servers'][$i]['nopassword'] = true;

参数的实际名称应如下所示:

$cfg['Servers'][$i]['AllowNoPassword'] = true;

这个"设置"截至2015年10月20日的错误存在。

答案 13 :(得分:1)

尝试找到$ cfg ['服务器'] [$ i] ['密码'] ='&#39 ;; 在配置文件中找到wamp / scripts / config.inc.php

然后将密码设置为您的mysql密码并刷新PhpmyAdmin

答案 14 :(得分:1)

我也遇到了这个问题,

我发现phpmyadmin的配置文件中的密码字段是空白的。我把那个填写了数据库设置的密码。现在它工作正常

答案 15 :(得分:0)

有时配置并不总是问题所在。

尝试检查MySql配置。如果您已更改端口号。在mysql上对PHP config php.ini进行了类似的更改。 查找并替换必要的更改。

答案 16 :(得分:0)

我在XAMPP和phpMyAdmin上遇到了同样的问题,这就是我轻松解决的方式。


1.打开XAMPP控制面板
2.然后选择右侧的资源管理器按钮


3.然后将其导航到配置所在的位置,您必须
进入phpMyAdmin文件夹
,然后右键单击突出显示的文件夹并在任何文本上选择“编辑”选项。编辑



4.然后,仅从MySQL服务器用户名和密码开始编辑以下舍入部分
如果您的MySQL服务器用户名是 root
如果您的MySQL服务器密码为 root ,请保留图片的原样

根据您提供给MySQL服务器的用户名和密码更改它们



5.保存更改并打开浏览器并粘贴
http://localhost/phpmyadmin/index.php
导航到phpMyAdmin