PHPMyAdmin不允许连接

时间:2013-07-15 20:16:36

标签: php mysql phpmyadmin xampp

我已经在多台Windows 7和Windows 8计算机的完全干净安装上安装了XAMPP的干净副本,试图让PHPMyAdmin在 任何 计算机上运行 任何 设置但无法完成。

所有机器都出现以下奇怪错误。

尝试连接127.0.0.1/phpmyadmin - 或 - localhost/phpmyadmin时:

Error Message

但是 - 如果该机器具有本地网络IP,例如192.168.1.12,我将浏览器导航到:192.168.1.12/phpmyadmin - 它加载得很好而没有错误!

因此,我的计算机可以通过网络连接到PHPMyAdmin,也可以通过网络连接到PHPMyAdmin,但绝不能从localhost连接到它们。

当我通过网络访问PHPMyAdmin时,这是正确的部分: PHPMyAdmin details

我尝试过的事情:

我花了很多时间尝试在网上论坛上找到的所有可能的解决方案,包括:

  • 编辑计算机的主机文件
  • 以千种不同方式编辑xampp/phpmyadmin/config.inc.php
  • 重新安装XAMPP,重新安装Windows XAMPP,手动卸载并重新安装MySQL / PHP / PHPMyAdmin等。
  • 尝试了解套接字以及是否存在某种我无法诊断的MySQL套接字错误。但是,MySQL运行正常,我可以启动命令行并以root身份登录并运行MySQL命令。我也可以从我自己的localhost web应用程序运行PHP PDO MySQL命令而没有问题,所以我几乎肯定PHPMyAdmin安装是责任而不是MySQL本身。

无论我做什么,我总是可以从192.168.1.x/phpmyadmin开始运行PHPMyAdmin,但绝不会从127.0.0.1/phpmyadminlocalhost/phpmyadmin运行。

请某人,任何人 - 任何建议或指示 - 帮助一个沮丧的编码员。

谢谢。

2 个答案:

答案 0 :(得分:1)

我想我看到了你的问题。我认为问题出在你的config.inc.php上,如果你看一下它所说的错误:

“配置中定义的控制用户连接失败。”

所以我很确定你的问题会因为这些代码行而出现:

/* User for advanced features */
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = '';

现在尝试只在config.inc.php中保留这些行,看看它是否有效。您可以删除其余部分或注释其余部分。您也可以尝试将auth_type更改为“Cookie”。

/*
 * This is needed for cookie based authentication to encrypt password in
 * cookie
 */
$cfg['blowfish_secret'] = 'xampp'; /* YOU SHOULD CHANGE THIS FOR A MORE SECURE COOKIE AUTH! */

/*
 * Servers configuration
 */
$i = 0;

/*
 * First server
 */
$i++;

/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';

/* Bind to the localhost ipv4 address and tcp */
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['connect_type'] = 'tcp';

基于php页面出现并且phpmyadmin给你一个错误的事实意味着你的hosts文件或.conf文件没有问题。我的猜测是你总是复制并粘贴相同的config.inc.php文件,这样你就可以在每台机器上遇到同样的问题。

答案 1 :(得分:0)

127.0.0.1与localhost相同,并且是指您的实际计算机。如果您尝试连接到127.0.0.1,phpMyAdmin会尝试打开与本地MySQL服务器的连接(仅在一台计算机上存在,您已安装它...)

如果你想要一个中央MySQL服务器,你必须使用正确的ip地址(可以用ifconfig / ipconfig确定)并使用那个。其次,您必须允许外部连接到此服务器。默认行为是仅允许127.0.0.1(仅为MySQL Server计算机)的Connections。 要允许来自外部计算机的root访问,你必须编辑mysql.ini文件,据我所知,该文件包含一个禁止从外部计算机连接到root的属性。