0

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

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

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

错误信息

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

因此,我的计算机可以通过网络自行连接到 PHPMyAdmin,也可以通过网络相互连接,但不能从本地主机连接。

当我像这样通过网络访问 PHPMyAdmin 时,这是正确的部分: PHPMyAdmin 详细信息

我试过的:

我花了很多时间尝试在在线论坛上找到的所有可能的修复方法,包括:

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

无论我做什么,我总是可以192.168.1.x/phpmyadmin从.127.0.0.1/phpmyadminlocalhost/phpmyadmin

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

谢谢你。

4

2 回答 2

1

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

“配置中定义的 controluser 连接失败。”

所以我很确定你的问题是因为这些代码行:

/* 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 文件,因此您在每台机器上都会遇到相同的问题。

于 2013-07-15T21:15:26.307 回答
0

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

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

于 2013-07-15T20:36:58.840 回答