XAMPP中与phpMyAdmin的“在配置中定义的controluser的连接失败”


127

我刚刚在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安装有问题。我该怎么做才能解决此问题?


19
恕我直言,这类问题非常普遍,浪费了大量时间来解决。此外,通过“定义问题范围”,如果可以将此类问题置于“程序员常用的软件”或“是因此,我要求SO退伍军人在标记“离题”之前应仔细考虑此类职位。SO已成为面对和解决问题的人员的可信赖的一站式解决方案,可以帮助您解决编程问题。因此,与在其他地方搜索此类问题相比,对于程序员而言,在此处获得确切答案将有所帮助。
Dexter 2014年

Answers:


243
  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并再次登录

问题解决了。


3
+1表示“注销并重新登录”。我浪费了五分钟,却没有意识到自己必须这样做。
马修·G

1
@MatthewG是的,配置文件已在您登录以减少磁盘I / O时加载到您的会话中,因此^^适用于您可能对PMA配置文件进行的任何更改
DaveRandom

14
出于某种原因,我的phpmyadmin版本将表名设置为“ pma__bookmark”,以此类推,并带有2个“下划线”。如果有相同的用户,则应相应地编辑“ config.inc.php”。顺便说一句,配置文件位于Ubuntu的“ / etc / phpmyadmin”目录中
ajaybc

6
在Ubuntu 14.04上,create_tables.sql的位置位于/usr/share/doc/phpmyadmin/examples/create_tables.sql.gz
karlingen 2014年

5
这是一个很好的答案(+我的第100个;)。但是,我没有找到步骤4中所指向的示例目录。而是在这里:/usr/share/doc/phpmyadmin/examples并找到了压缩的sql文件:create_tables.sql.gz
Majid Fouladpour 2015年

134

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

sudo dpkg-reconfigure phpmyadmin

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

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


2
这对我有用,我只需要重新安装它询问的数据库即可。谢谢。(Ubuntu 12.04)
2013年

17
在配置过程中,我必须为控制用户键入“ pma”而不是“ phpmyadmin”,以使其正常工作。
Hardell

1
谢谢,您保存了我的一天:)

2
在为我工作之后,删除“ phpmyadmin”用户,然后运行“ sudo dpkg-reconfigure phpmyadmin”。谢谢!
bshea 2014年

1
注意:这将清除所有已配置的服务器(如果有)。
Raptor

23

只需在中注释掉整个“高级功能用户”和“高级phpMyAdmin功能”代码块config.inc.php


有什么解释吗?这如何以及为什么起作用?
休伊

1
@Ben:有时候,这很重要;)
条纹

在哪个文件中....太无用了!但是每个人都明白,所以我感到愚蠢,无法解决它,哈哈双输!
Jamie Hutber '16

2
那将是config.inc.php
Rocoty '16

1
不存在像什么User for advanced features" and "Advanced phpMyAdmin features里面phpmyadmin/config.inc.php
AN

11

您最近是否更改了MySQL Server的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/


4

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

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

$cfg['Servers'][$i]['controluser'] = 'root'; 
$cfg['Servers'][$i]['controlpass'] = 'thepasswordgiventoroot'; 

3

在Ubunbtu。

Ben的消息已关闭,但这不是问题的root密码,我发现的问题是我在安装phpmyadmin数据库时为它创建了密码。此密码未带入ubuntu上的安装中,因此变量$ dbpass =''; 在数据库设置文件中为空,而不是您设置的密码。

  1. 要在命令行中使用以下命令在mysql上登录时检查密码是否正确:mysql -u phpmyadmin -p尝试输入空白密码,但发现我拒绝访问,请使用在安装过程中设置的密码再次输入命令。如果登录,您现在知道密码是什么。
  2. 编辑/etc/phpadmin/config-db.php并更改$ dbpass =''; $ DBPASS = '密码'; 并保存文件。
  3. 编辑/etc/dbconfig-common/phpmyadmin.conf更改dbc_dbpass ='' ; 到dbc_dbpass ='您的密码'; 并保存文件。关闭浏览器并重新加载,现在您将发现消息已消失。


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”,然后单击go。

重启mysql服务器。

现在该消息应该消失了。


0

我只是简单地对config.inc.php文件进行更改。$ cfg ['Servers'] [$ i] ['password'] ='您的密码'; 现在它完美地工作了。


请编辑您的问题并添加更多详细信息。这是低质量的。
Mathews Sunny Sunny

以上是解决方法,我没有执行上述步骤。我只是简单地转到config.inc.php目录,然后在记事本中打开此文件config.inc.php,更改后的这一行$ cfg ['Servers'] [$ i] ['password'] ='您的密码'
Mohit Sharma

我看到密码被提到有误,我再次输入正确的密码并保存并再次运行phpmyadmin,它现在可以正常运行
Mohit Sharma

0

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

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

也为河豚太短的错误

编辑/var/lib/phpmyadmin/blowfish_secret.inc.php并延长密钥


0

在ubuntu 18.04上的etc/phpmyadmin/config.inc.php 注释所有块

可选:高级功能用户


-1

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

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

$cfg['Servers'][$i]['port'] = 'port';`
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.