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

时间:2012-07-16 14:15:19

标签: php phpmyadmin xampp

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

  

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

在我安装XAMPP之前,我安装了一个MySQL数据库并且有一个密码。我更改并将密码放在config.inc.php中用于MySQL,我收到了这个错误:

<?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安装似乎有问题。我该怎么做才能解决这个问题?

15 个答案:

答案 0 :(得分:231)

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

    $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';
    
  10. 保存并关闭文件。

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

    1. 退出phpMyAdmin并重新登录
    2. 问题解决了。

答案 1 :(得分:127)

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

sudo dpkg-reconfigure phpmyadmin

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

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

答案 2 :(得分:22)

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

答案 3 :(得分:4)

这适用于我在Ubuntu 16.04下的phpmyadmin:

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

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

答案 4 :(得分:3)

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

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

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

/etc/phpmyadmin/config-db.php

或:

/etc/phpMyAdmin/config-db.php

示例:(我的文件看起来像这样,我将用户从phpmyadmin更改为admin,我创建的用于通过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/

答案 5 :(得分:3)

On Ubunbtu。

Ben的消息很接近,但不是根密码就是问题,我发现的问题是我在安装phpmyadmin数据库时为其创建了密码。 此密码不会被带到ubuntu上的安装中,因此变量$ dbpass =&#39;&#39 ;;在数据库设置文件中为空,而不是您设置的密码。

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

答案 6 :(得分:2)

“为了让我再次使用它,我刚刚删除了文件

ib_logfile0 和

ib_logfile1

来自:

/ Applications / MAMP / db / mysql56 / ib_logfile0“

在XAMPP上,其Xampp / xamppfiles / var / mysql

the owlready2 documentation

答案 7 :(得分: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服务器。

现在消息应该消失。

答案 8 :(得分:0)

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

答案 9 :(得分:0)

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

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

对于河豚鱼也太短的错误

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

答案 10 :(得分:0)

我有同样的问题。在我的情况下,重启后Mysql没有启动。一旦我启动了mysql“ service mysql start”,一切就正常了。

答案 11 :(得分:0)

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

可选:高级功能用户

答案 12 :(得分:0)

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

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

$cfg['Servers'][$i]['controluser'] = 'pma'; 
$cfg['Servers'][$i]['controlpass'] = 'pass pma'; 

答案 13 :(得分: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;

答案 14 :(得分:-1)

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

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

$cfg['Servers'][$i]['port'] = 'port';`