132

我刚刚在我的 Windows XP 机器上安装了 XAMPP,我收到一条错误消息:

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

在我安装 XAMPP 之前,我安装了一个 MySQL 数据库并且它有一个密码。我更改了密码并将其放入 MySQL 的 config.inc.php 中,但出现此错误:

<?php
if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {
    $uri = 'https://';
} else {
    $uri = 'http://';
}
$uri .= $_SERVER['HTTP_HOST'];
header('Location: '.$uri.'/xampp/');
exit;
?>

当我尝试访问 index.php 时,XAMPP 安装似乎有问题。我能做些什么来解决这个问题?

4

14 回答 14

248
  1. 在浏览器中打开 phpMyAdmin 并以 root 身份登录。
  2. 创建一个名为phpmyadmin
  3. 创建一个名为的用户pma并将“主机”设置为您的 Web 服务器的主机名或 IP 地址(如果 Web 服务器和 MySQL 在同一个框上使用localhost),记下密码,并授予新用户完全控制权phpmyadmin数据库。建议此用户无权访问此数据库以外的任何内容。
  4. 转到 phpMyAdmin 安装目录,您应该在其中找到一个名为sql.
  5. sql您将找到一个名为create_tables.sql. 在文本编辑器中打开它。
  6. 在 phpMyAdmin 中,选择phpmyadmin数据库并单击“SQL”选项卡。
  7. 将整个文本复制/粘贴create_tables.sql到文本框中,然后运行查询。
  8. 打开config.inc.phpphpMyAdmin 安装目录中的文件,并添加以下行(或更改现有设置,如果它们已经存在):

    $cfg['Servers'][1]['pmadb'] = 'phpmyadmin';
    $cfg['Servers'][1]['controluser'] = 'pma';
    $cfg['Servers'][1]['controlpass'] = '<your password>';
    
    // Note: The list below may grow as PMA evolves and more control tables are added
    // Use your common sense! Don't just blindly copypasta, look at what it means!
    $cfg['Servers'][1]['bookmarktable'] = 'pma_bookmark';
    $cfg['Servers'][1]['relation'] = 'pma_relation';
    $cfg['Servers'][1]['userconfig'] = 'pma_userconfig';
    $cfg['Servers'][1]['table_info'] = 'pma_table_info';
    $cfg['Servers'][1]['column_info'] = 'pma_column_info';
    $cfg['Servers'][1]['history'] = 'pma_history';
    $cfg['Servers'][1]['recent'] = 'pma_recent';
    $cfg['Servers'][1]['table_uiprefs'] = 'pma_table_uiprefs';
    $cfg['Servers'][1]['tracking'] = 'pma_tracking';
    $cfg['Servers'][1]['table_coords'] = 'pma_table_coords';
    $cfg['Servers'][1]['pdf_pages'] = 'pma_pdf_pages';
    $cfg['Servers'][1]['designer_coords'] = 'pma_designer_coords';
    
  9. 保存并关闭文件。

重要- PMA 在登录时加载配置,对其进行评估并将其存储到会话数据中,因此在您执行以下操作之前消息不会消失:

  1. 退出 phpMyAdmin 并重新登录

问题解决了。

于 2012-07-16T14:31:07.190 回答
136

如果您来到这里并且使用的是 Debian/Ubuntu(或任何其他基于 dpkg 的发行版),请执行以下命令:

sudo dpkg-reconfigure phpmyadmin

phpmyadmin 包包含为您执行此操作的脚本,它只需要一个具有权限的用户。当然,如果您以 root 身份登录,则不需要 sudo。

编辑:可能值得尝试删除当前的 phpmyadmin 用户。

于 2012-11-01T14:43:31.003 回答
24

只需注释掉config.inc.php.

于 2012-11-26T09:54:20.280 回答
15

您最近是否更改了 MySQL 服务器的 root 密码?如果答案是肯定的,那么这就是 phpMyAdmin 控制台中的错误/警告的原因。要解决此问题,只需编辑 phpMyAdmin 的 config-db.php 文件并设置正确的数据库密码。

在我看来,第一个答案太混乱了,第二个答案对我不起作用。所以:

在基于 Linux 的服务器中,该文件通常位于:

/etc/phpmyadmin/config-db.php

或者:

/etc/phpMyAdmin/config-db.php

示例:(我的文件看起来像这样,我将用户从 更改phpmyadminadmin,这是我为通过 phpmyadmin 维护我的数据库而创建的用户名,并输入了适当的密码。

$dbuser='phpmyadmin';
$dbpass=''; // set current password between quotes ' '
$basepath='';
$dbname='phpmyadmin';
$dbserver='';
$dbport='';
$dbtype='mysql';

学分:http ://tehnoblog.org/phpmyadmin-error-connection-for-controluser-as-defined-in-your-configuration-failed/

于 2016-11-16T12:50:05.537 回答
5

这对我在 Ubuntu 16.04 下的 phpmyadmin 有效:

我编辑了 /etc/phpmyadmin/config.inc.php 并更改了以下两行:

$cfg['Servers'][$i]['controluser'] = 'root'; 
$cfg['Servers'][$i]['controlpass'] = 'thepasswordgiventoroot'; 
于 2017-01-13T20:17:04.843 回答
3

在 Ubuntu 上。

Ben 的消息很接近,但问题不是 root 密码,我发现的问题是我在安装 phpmyadmin 数据库时为其创建了密码。ubuntu 安装时不会携带此密码,因此变量 $dbpass=''; 在数据库设置文件中是空的而不是你设置的密码。

  1. 要在命令行登录 mysql 时检查您是否有正确的密码,请使用以下命令: mysql -u phpmyadmin -p 尝试使用空白密码 我发现访问被拒绝,请使用您在安装期间设置的密码再次输入命令。如果它登录你现在知道密码是什么。
  2. 编辑/etc/phpadmin/config-db.php并更改$dbpass=''; to $dbpass='你的密码'; 并保存文件。
  3. 编辑/etc/dbconfig-common/phpmyadmin.conf更改dbc_dbpass='' ; to dbc_dbpass='你的密码'; 并保存文件。关闭浏览器并重新加载,您现在会发现消息已经消失。
于 2016-11-26T17:09:53.143 回答
2

“为了让我再次工作,我只是删除了文件

ib_logfile0 和

ib_logfile1 。

从 :

/应用程序/MAMP/db/mysql56/ib_logfile0“

在 XAMPP 上,它的 Xampp/xamppfiles/var/mysql

PHP 警告:mysqli_connect(): (HY000/2002): Connection denied

于 2018-07-04T22:25:08.650 回答
1

在 ubuntu 上/etc/phpmyadmin/config-db.php

确保密码与控制用户的 config.inc.php 匹配

也适用于河豚太短的错误

edit /var/lib/phpmyadmin/blowfish_secret.inc.php并使密钥更长

于 2018-08-29T11:10:27.423 回答
1

这对我在 Ubuntu 16.04 下的 phpmyadmin 有效:

我编辑/etc/phpmyadmin/config.inc.php并更改了以下两行:

$cfg['Servers'][$i]['controluser'] = 'pma'; 
$cfg['Servers'][$i]['controlpass'] = 'pass pma'; 
于 2021-03-25T17:25:24.703 回答
0

问题是PhpMyAdmin控制用户(通常是:pma)密码与mysql用户:pma(相同用户)密码不匹配。

要修复它, 1. 在此处为用户 pma 设置所需的密码:

"C:\xampp\phpMyAdmin\config.inc.php"

$cfg['Servers'][$i]['controlpass'] = 'your_new_phpmyadmin_pass';

(应该像第 32 行)

然后进入mysql,以root登录,进入:(我用phpmyadmin进入这里)

数据库:mysql »表:用户

编辑用户:pma

从函数列表(左列)中选择“密码”并在右列中设置“your_new_phpmyadmin_pass”,然后点击执行。

重启mysql服务器。

现在消息应该消失了。

于 2017-06-12T16:08:29.253 回答
0

我只是简单地对 config.inc.php 文件进行更改。此链接中有密码错误 $cfg['Servers'][$i]['password'] = 'your password'; 现在它完美地工作了。

于 2017-12-09T08:39:06.327 回答
0

在 ubuntu 18.04 上etc/phpmyadmin/config.inc.php 评论所有块

可选:高级功能的用户

于 2018-10-18T05:25:32.657 回答
0

在ubuntu上,这些步骤对我有用......

1. sudo gedit /etc/phpmyadmin/config.inc.php.

2. uncomment[remove(/)]  following lines :-

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

3. comment[add(/)] following lines :-     

   //$cfg['Servers'][$i]['controluser'] = $dbuser;
   //$cfg['Servers'][$i]['controlpass'] = $dbpass;
于 2021-04-23T05:01:55.830 回答
-1

今天刚刚安装了 XAMPP,我决定为 mysql 使用不同的默认端口,这太可怕了。确保将这些行添加到 phpMyAdmin config.inc.php

$cfg['Servers'][$i]['host'] = 'localhost';

$cfg['Servers'][$i]['port'] = 'port';`
于 2016-12-12T16:14:59.487 回答