【问题标题】:"Connection for controluser as defined in your configuration failed" with phpMyAdmin in XAMPPXAMPP中的phpMyAdmin“配置中定义的controluser连接失败”
【发布时间】:2012-07-15 09:55:50
【问题描述】:

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

【问题讨论】:

  • 恕我直言,这类问题非常普遍,并且浪费了大量时间来解决它们。此外,通过“定义问题范围”,我们是否可以将此类问题放在“软工具”下,这值得商榷。程序员使用”或“是软件开发独有的实用、可回答的问题”。因此,我要求 SO 资深人士在标记“离题”之前仔细考虑此类帖子。 SO 已成为一个值得信赖的一站式目的地,可以从遇到并解决编程问题的人那里得到解答。因此,程序员在这里得到准确的答案比在别处搜索此类问题更有帮助。
  • 我从中找到了解决方案。 stackoverflow.com/a/54176422/4630590

标签: php phpmyadmin xampp


【解决方案1】:
  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. 打开 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';
    
  9. 保存并关闭文件。

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

  1. 退出phpMyAdmin并重新登录

问题解决了。

【讨论】:

  • +1 表示“注销并重新登录”。我浪费了五分钟没有意识到我必须这样做。
  • @MatthewG 是的,配置文件会在您登录时加载到您的会话中以减少磁盘 I/O,因此 ^^ 适用于您可能对 PMA 配置所做的任何更改文件
  • 出于某种原因,我的 phpmyadmin 版本的表名是“pma__bookmark”,依此类推,并带有 2 个“下划线”。如果有人有同样的情况,那么您应该相应地编辑“config.inc.php”。顺便说一句,配置文件位于 Ubuntu 的“/etc/phpmyadmin”目录中
  • 在 Ubuntu 14.04 上,create_tables.sql 的位置在 /usr/share/doc/phpmyadmin/examples/create_tables.sql.gz 中
  • 这是一个很好的答案(第 100 个 + 来自我;))。但是,我没有找到步骤 4 中指向的 examples 目录。而是在这里:/usr/share/doc/phpmyadmin/examples,在那里我找到了压缩的 sql 文件:create_tables.sql.gz
【解决方案2】:

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

sudo dpkg-reconfigure phpmyadmin

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

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

【讨论】:

  • 这对我有用,我只需要重新安装它要求的数据库。谢谢。 (Ubuntu 12.04)
  • 我必须在配置过程中为控制用户键入“pma”而不是“phpmyadmin”才能使这项工作正常进行。
  • 谢谢,你拯救了我的一天 :) 呵呵
  • 删除 'phpmyadmin' 用户 first 并在为我工作后运行 'sudo dpkg-reconfigure phpmyadmin'。谢谢!
  • 注意:这将清除所有配置的服务器,如果有的话。
【解决方案3】:

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

【讨论】:

  • 对此有何解释?这如何以及为什么起作用?
  • @Ben : 有时候这很重要 ;)
  • 在哪些文件中......这太无用了!但是每个人都明白,所以我觉得自己很愚蠢,无法修复它,哈哈,双输!
  • 那就是 config.inc.php
  • phpmyadmin/config.inc.php中不存在类似User for advanced features" and "Advanced phpMyAdmin features的东西
【解决方案4】:

您最近是否更改了 MySQL 服务器的 root 密码?如果答案是肯定的,那么这就是 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】:

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

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

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

    【讨论】:

      【解决方案6】:

      在 Ubuntu 上。

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

      1. 使用以下命令在命令行登录 mysql 时检查您的密码是否正确: mysql -u phpmyadmin -p try a blank password 我发现访问被拒绝,请使用您在安装期间设置的密码再次输入命令.如果它登录了,您现在就知道密码是什么了。
      2. 编辑 /etc/phpadmin/config-db.php 并将 $dbpass=''; 更改为 $dbpass='Your Password'; strong> 并保存文件。
      3. 编辑 /etc/dbconfig-common/phpmyadmin.conf 更改 dbc_dbpass=''; dbc_dbpass='Your Password'; 并保存文件。 关闭浏览器并重新加载,您现在会发现消息已消失。

      【讨论】:

        【解决方案7】:

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

        ib_logfile0 和

        ib_logfile1 .

        来自:

        /Applications/MAMP/db/mysql56/ib_logfile0"

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

        PHP Warning: mysqli_connect(): (HY000/2002): Connection refused得到这个

        【讨论】:

          【解决方案8】:

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

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

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

          【讨论】:

          • 你拯救了我的一天。谢谢!
          • 你必须解释什么是 pma 并通过 pma
          【解决方案9】:

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

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

          还有河豚太短的错误

          edit /var/lib/phpmyadmin/blowfish_secret.inc.php 让密钥变长

          【讨论】:

            【解决方案10】:

            问题是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服务器。

            现在消息应该消失了。

            【讨论】:

              【解决方案11】:

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

              【讨论】:

              • 请编辑您的问题并添加更多详细信息。这是低质量的。
              • 以上是分辨率,我没有按照上面的步骤。我只是简单地转到 config.inc.php 目录并在记事本中打开这个文件 config.inc.php 并更改了这一行 $cfg['Servers'][$i]['password'] = 'your password'跨度>
              • 我看到密码有错误,我再次输入正确的密码并保存并再次运行phpmyadmin,它现在运行正常
              【解决方案12】:

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

              可选:高级功能的用户

              【讨论】:

                【解决方案13】:

                在 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】:

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

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

                  【讨论】:

                    猜你喜欢
                    • 2016-01-27
                    • 2013-04-24
                    • 2017-11-02
                    • 2019-05-25
                    • 2015-09-30
                    • 2014-09-08
                    • 2013-05-11
                    • 2022-12-09
                    • 2019-05-16
                    相关资源
                    最近更新 更多