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


74

我在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?


特权是特定

2
编辑%windir%\system32\drivers\etc\hosts文件并127.0.0.1 localhost在其中添加/取消注释
dev-null-dweller

1
有时,可以通过清除所有cookie来解决phpMyAdmin的登录问题。
xyz 2013年

@xyz,您的评论解决了我的问题。我陷入困境,浪费了半天时间。
Ghulam Akbar

Answers:


92

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

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

并替换为

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

9
这对我有用。非常感谢。我正在使用XAMPP,因此文件目录为{Drive(C:/或D:/或任何XAMPP文件夹位于)} xampp \ phpMyAdmin \ config.inc.php,并按照Nikhil的说明进行操作。
MOH 2014年

1
在这里,我有一个建议,可以使此解决方案更加流畅。在最后一行代码之后,您还可以添加<code> $ cfg ['Servers'] [$ i] ['AllowNoPassword'] = true; </ code>
Nikhil G

简短而有效的答案。谢谢!
Mustafa Mohammadi

2
$cfg['Servers'][$i]['password'] 在此配置文件中不存在任何类似的内容……
sam nikzad,

1
提提您:对于W7上的XAMPP,文件为/xampp/phpMyAdmin/config.inc.php
分钟

24

在更改数据库中的密码后,我遇到了同样的问题..我所做的是编辑更新的密码,我之前更改了该密码,但在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'] = '';

这发生在我身上,因为我从mysql内部更改了root用户的密码。我只需要更新config.inc(mine was config.inc.php)内部的密码,它对我有用。
luckyging3r

是的,您需要同步所有文件上的更新,因为它们彼此依赖。
Ezra A.Mosomi

16

在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'],您将看到4种选择方式来选择如何登录phpMyAdmin页面。


7

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

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

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

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

将上面的行更改为:

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

1
这在工作时,首先停止正在运行的Apache和MySql,然后停止上述步骤。
约翰·雅马罗

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

突然间它起作用了!


最APT和精确的解决方案
codefreaK

4

如果您已有mysql的现有密码,请按照以下说明编写:

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

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

并替换为

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


3

@Dagon的想法是正确的,但是在细节上有些短。

如果使用此访问权限127.0.0.1/phpmyadmin并仔细查看MysQL中设置的“用户”,则应该看到root用户名的3个版本。

这是因为在MySQL中,每个用户ID都与主机相关联,即允许用户登录的PC(ip地址)。因此,您的3个'root'用户ID实际上是允许从3个单独的HOSTS登录的用户ID。通常,“ root”具有3个HOSTS设置,即127.0.0.1,localhost和:: 1。

这些是 :-

本地主机是从您的HOSTS文件(c:\ windows \ system32 \ drivers \ etc \ hosts)创建的此机器的别名

127.0.0.1是此机器的IPv4环回IP地址

:: 1是此机器的IPv6环回IP地址

您可能正在发生的事情是,您为root@127.0.0.1设置了密码,但没有设置其他任何密码。现在,您的浏览器将“任意”决定使用:: 1或127.0.0.1作为主机ip,因此当使用:: 1时,登录将失败。

因此,使用登录127.0.0.1/phpmyadmin并更改所有3个“ root”用户名,使其具有相同的密码,您将不再会遇到此问题。

还要确保您的HOSTS文件具有这2个条目

127.0.0.1  localhost
::1        localhost

::1 localhost就我而言,添加是完美的解决方案。万分感谢!
Devner 2014年

3

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

与使用Cookie $cfg['Servers'][$i]['auth_type'] = '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

3

我使用此URL输入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

问题解决了


3

解决以上错误:

a)  Open Mysql console from the tray of WAMP server

b)  It will ask for a 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,但是您可以通过从以下路径中为此Open config.inc文件提供密码来连接MySql Server。

C:\wamp\apps\phpmyadmin4.1.14

并替换这条线

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

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

我希望它能起作用...


3

对我有用的是:

转到config.inc.php。

更改

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

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

更改

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

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

更改

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

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

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

类型:根
pass :(空)

现在您可以访问它。:)


2

xampp \ phpMyAdmin / config.inc

找-

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

并将“ config”更改为“ http”,这将允许您在使用浏览器进入phpMyAdmin页面时输入用户名和密码。



2

尝试找到$ cfg ['Servers'] [$ i] ['password'] =''; 在位于wamp / scripts / config.inc.php的配置文件中

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


2

我也面对这个问题

我发现phpmyadmin的配置文件中的密码字段为空。我输入了我在数据库设置中填写的密码。现在工作正常


0

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

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


0

我在XAMPP和phpMyAdmin中遇到了相同的问题,这就是我轻松解决的方法。


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


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



4.然后编辑只有下面的圆形区域为你的MySQL服务器的用户名和密码的
。如果你的MySQL服务器的用户名是
如果你的MySQL服务器密码为,保持作为图像的

改变他们根据你的您提供给MySQL服务器用户名和密码,



5的。保存更改并打开浏览器并粘贴
http://localhost/phpmyadmin/index.php
导航到phpMyAdmin
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.