在 XAMPP 中使用 phpMyAdmin“ Connection for controller user as Definition in your configuration error”

我刚刚在我的 Windows XP 机器上安装了 XAMPP,我得到一个错误说:

您的配置中定义的控制器连接失败。

在安装 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 安装似乎出了问题。我能做些什么来解决这个问题?

472066 次浏览
  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. Save and close the file.

IMPORTANT - PMA loads the config on login, evaluates it and stores it into the session data so the message will not disappear until you do this:

  1. Log out of phpMyAdmin and log in again

Problem solved.

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

sudo dpkg-reconfigure phpmyadmin

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

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

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

您最近是否更改了您的 MySQLServer 根密码?如果回答是 YES,那么这就是 phpMyAdmin 控制台中出现错误/警告的原因。要解决这个问题,只需编辑 phpMyAdmin 的 config-db.php 文件并设置适当的数据库密码。

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

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

/etc/phpmyadmin/config-db.php

或:

/etc/phpMyAdmin/config-db.php

示例: (My File 看起来像这样,我将用户从 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/

在 Ubunbtu。

Ben 的消息很接近,但问题不在于 root 密码,我发现的问题是我在安装 phpmyadmin 数据库时创建了一个密码。 在 ubuntu 上,这个密码不会进入安装程序,因此变量 $dbpass =”; 在数据库设置文件中是空的,而不是您设置的密码。

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

在今天刚刚安装了 XAMPP 之后,我决定为 mysql 使用一个不同的默认端口,这很糟糕。确保将这些代码行添加到 phpMyAdmin config.inc.php:

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


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

这个在 Ubuntu 16.04下的 phpmyadmin 中很有效:

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

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

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

为了解决这个问题, 1. 在这里为用户 pma 设置所需的密码:

“ C: xampp phpMyAdmin config.inc.php”

$cfg [‘ Servers’][ $i ][‘ control pass’] = ‘ your _ new _ phpmyadmin _ pass’;

(应该像在第32行)

然后转到 mysql,作为 root 用户登录,转到: (我使用 phpmyadmin 到这里)

数据库: mysql”表: 用户

编辑用户: pma

从函数列表(左栏)中选择“ Password”,并在右栏中设置“ your _ new _ phpmyadmin _ pass”,然后点击。

重启 mysql 服务器。

现在信息应该消失了。

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

“为了让它重新工作,我只是删除了文件

Ib _ logfile0 还有

Ib _ logfile1 .

来自:

/Applications/MAMP/db/mysql56/ib _ logfile0”

在 xAMPP 上是 XAMPP/xamppfiles/var/mysql

这是 PHP 警告: mysqli _ connect () : (HY000/2002) : 连接被拒绝台的

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

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

也为河豚太短的错误

edit /var/lib/phpmyadmin/blowfish_secret.inc.php和使钥匙更长

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

可选: 高级特性的用户

这个在 Ubuntu 16.04下的 phpmyadmin 中很有效:

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

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

在 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;

因此,我意外地删除了 phpmyadmin 用户,但没有删除表,这些天唯一有效的最佳答案是这个: https://stackoverflow.com/a/40632599/15821993

在终端中打开/etc/phpmyadmin/目录并使用

sudo nano config-db.php

以根用户身份打开它(其他用户无法访问)

你可以在那里找到已删除用户的用户名和密码。如果您想要更改它们,您可以对它们进行任何更改,以保护文件的安全,或者在下一步中重用它们。

获得这些信息或更改凭据之后: 登录到 phpmyadmin 控制台,并使用与文件中相同的用户名和密码为 db phpmyadmin 创建一个新用户。仅向用户授予此数据库的所有权限,然后就完成了。

在 phpMyAdmin 注销并再次登录,所有错误都消失了。