配置中定义的 controluser 连接失败

Posted

技术标签:

【中文标题】配置中定义的 controluser 连接失败【英文标题】:Connection for controluser as defined in your configuration failed 【发布时间】:2014-09-08 12:58:22 【问题描述】:

我已经查看了this,但由于我在 Ubuntu 10.04 而不是 XAMPP 上运行,并且已经创建了 phpmyadmin 数据库,我可以通过终端以 root 和 phpmyadmin 用户登录。

我是如何安装的: sudo apt-get install lamp-server^ sudo apt-get install phpmyadmin

我可以使用 root 和 phpmyadmin 用户在终端本地登录。 我可以查看 phpmyadmin 登录页面。 我发布到服务器的 phpinfo.php 页面工作正常。

Ubuntu 版本 10.04.4 Lucid Lynx Apache 2.2.14 mysql 5.1.73 PHP 5.3.6 Phpmyadmin 3.3.2

【问题讨论】:

哦,我已将 root 和 phpmyadmin 的所有权限授予 MySQl 服务器。 您是手动安装还是从软件包安装 phpMyAdmin (dpkg/apt/aptitude/etc? 我是从包中安装的。 【参考方案1】:

如果您在带有 xammp 的 Windows 上,请转到 C:\xammp\phpMyAdmin\ config.inc,打开它并找到这一行,现在确保

/* User for advanced features*/
$cfg['servers'][$i]['controluser'] = 'pma';
$cfg['servers'][$i]['controlpass'] = '';

和phpMyAdmin数据库中的用户pma用户名和密码相同

阅读phpmyadmin documentation

【讨论】:

请考虑编辑您的帖子,以添加更多关于您的代码的作用以及它为何能解决问题的说明。一个大部分只包含代码的答案(即使它正在工作)通常不会帮助 OP 理解他们的问题。【参考方案2】:

只需取消注释该行:

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

试试看。

【讨论】:

我不再拥有该项目,但听起来它可以工作。 工作。当问题似乎与控制用户有关时,任何人都解释了为什么它会起作用? 我取消了该行的注释,刷新了我的浏览器。问题消失了。再次发表评论。仍然消失了。 :|【参考方案3】:

创建一个数据库 phpmyadmin

打开文件

  /etc/phpmyadmin/config-db.php

在 config-db.php 文件中设置 root 密码。

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

问题将得到解决。

【讨论】:

【参考方案4】:

有2个错误:

1. 配置中定义的 controluser 连接失败 解决方案: 一个。打开终端: sudo gedit /etc/phpmyadmin/config.inc.php

b.并取消注释以下行(可能两者都会出现 2 次,具体取决于版本): $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;

c。并评论以下几行(可能两者都会出现两次,具体取决于版本): //$cfg['Servers'][$i]['controluser'] = $dbuser; //$cfg['Servers'][$i]['controlpass'] = $dbpass;

2. 拒绝用户'root'@'localhost'访问

当您打开 phpmyadmin 或在终端上使用 sudo 命令打开 mysql(不是来自 root 用户)时,就会出现这种情况。此错误是由于 root 用户造成的。此错误背后的原因是您当前的 ubuntu 用户没有在终端中打开 mysql 的特权。如果您使用 sudo 命令打开 mysql,那么它将打开,但不会从您当前的用户打开。例如:

lenovo@lenovo-ThinkPad-E460:/etc$ mysql -u root -p 输入密码: ERROR 1698 (28000): 拒绝用户'root'@'localhost'的访问

这里当前的 ubuntu 用户是 lenovo。所以你必须给你的root用户权限。 进程:

1 - 首先,在 sudo mysql 中连接

sudo mysql -u root

2 - 检查您的数据库中存在的帐户

从 mysql.user 中选择用户、主机;

+------------------+----------+
|用户 |主持人 |
+------------------+----------+
|管理员 |本地主机 |
| debian 系统维护 |本地主机 |
| magento_user |本地主机 |
| mysql.sys |本地主机 |
|根 |本地主机 |

3 - 删除当前 root@localhost 帐户

mysql> DROP USER 'root'@'localhost'; 查询正常,0 行受影响(0,00 秒)

4 - 重新创建您的用户

mysql> CREATE USER 'root'@'%' IDENTIFIED BY ''; 查询正常,0 行受影响(0,00 秒)

5 - 向您的用户授予权限,不要忘记刷新权限

mysql> GRANT ALL PRIVILEGES ON . TO 'root'@'%'; 查询正常,0 行受影响(0,00 秒)

mysql> 刷新权限; 查询正常,0 行受影响(0.01 秒)

6 - 退出 mysql 并尝试在不使用 sudo 的情况下重新连接

我希望这会有所帮助。现在您无需密码即可打开 phpmyadmin。

【讨论】:

这对我来说是最好的解决方案!谢谢【参考方案5】:

首先确保您在此文件中有正确的usernamepassword

/etc/dbconfig-common/phpmyadmin.conf

/etc/phpmyadmin/config-db.php中所述:

## database access settings in php format
## automatically generated from /etc/dbconfig-common/phpmyadmin.conf
## by /usr/sbin/dbconfig-generate-include

username & password 用于访问phpmyadmin database。 因此,phpmyadmin database 应该有一个 user,并且分配给它的名称和密码至少是 Database-specific privileges

这为我解决了它....

开启:

服务器:通过 UNIX 套接字的本地主机 服务器类型:MySQL 服务器版本:5.7.16 - MySQL 社区服务器 (GPL)

【讨论】:

【参考方案6】:

可能的问题:更新了 mySQL 用户

当您在 phpmyadmin 中连接的用户已在 mySQL 中更新时,也会发生这种情况。我只是在卸载/更新/重新安装 phpmyadmin 并同时更改一些 mySQL 设置时遇到了这个问题。

修复此问题:更新 config-db.php

解决方法是使用正确的登录凭据(用户名、密码等)更新 config-db.php 文件

在 Ubuntu 12.04 中,它位于 /etc/phpmyadmin/config-db.php。

一些更详细的说明在http://tehnoblog.org/phpmyadmin-error-connection-for-controluser-as-defined-in-your-configuration-failed/

【讨论】:

$dbuser 更改为root 并将$dbpass 留空对我有用,谢谢!【参考方案7】:

就我而言,我使用套接字连接。通过设置 $cfg['Servers'][$i]['controlhost'] = ''; (所以要清空)消息“您的配置中定义的 controluser 连接失败”消失了。我认为原因是,如果您设置了“controlhost”,phpMyAdmin 会尝试与数据库建立新连接,从而忽略套接字。

在你找到的代码中:

          if (! empty($cfg['Server']['controlhost'])
            || ! empty($cfg['Server']['controlport'])

在 if 块的末尾建立一个新的连接。

【讨论】:

【参考方案8】:

通过将协议切换到 tcp 并连接到“127.0.0.1”而不是“localhost”,我已成功连接。 即使 MySql 守护程序套接字正在运行,仍然无法通过 Unix 套接字连接。

【讨论】:

你的mysql设置肯定有问题,应该检查它的套接字锁定文件设置。【参考方案9】:

由于您能够在终端以 controluser 身份登录,因此您的配置文件很可能没有包含 controluser 的正确用户名或密码。

在您的文本编辑器中打开 config.inc.php 并查看 controluser 和 controlpass 行——确保它们与您成功使用的用户名和密码完全匹配。尝试将这两行完全注释掉,看看是否会收到不同的错误消息。

如果您使用包管理器安装,请注意配置文件分布在 /etc/phpmyadmin 中,如果您手动添加这些行,它们可能会被另一个配置文件覆盖。试试grep -Ri controluser /etc/phpmyadmin/* 看看它是否出现在多个文件中。

既然你已经使用了包管理器,你应该让它来处理配置数据库。尝试删除您对配置文件所做的任何编辑并运行 dpkg-reconfigure -plow phpmyadmin(这是在命令提示符下运行的 shell 命令);这将重新配置 phpmyadmin 包,并询问您是否要允许 dbconfig-common 为您和 controluser 创建 phpMyAdmin 表。

【讨论】:

我查看了您的建议,非常有帮助。我仔细检查了我是否可以登录: mysql -u phpmyadmin phpmyadmin -p 然后我将凭据添加到 config.inc.php 页面。还是失败了。我没有更改 'connect_type' 或 'port',它们是默认的。 您是否允许dbconfig-common 配置您的数据库?如果您这样做,这一切都应该自动发生。我已经编辑了答案,请尝试 dpkg-reconfigure 部分。 运行 dpkg-reconfigure 时发生了什么?您是否收到询问是否要允许 dbconfig-common 配置数据库的对话框?它是否给出了另一个错误消息? 从内存中删除,因为计算机现在已经停止工作了。我确实得到说对话框单击是以重新配置数据库。尝试了几次,通常我会将其设置为监听 UNIX Socket,并且重新配置器始终能够登录。 MySQL 设置为默认设置(当然不包括密码),但我知道所有这些并且可以访问终端到本地计算机上的 MySQL。 dpkg-reconfigure -plow phpmyadmin 为我解决了这个问题,因为我通过错误的输入通过sudo apt-get install phpmyadmin 搞砸了安装,因此 phpmyadmin 无法连接到数据库并设置它们的初始结构。

以上是关于配置中定义的 controluser 连接失败的主要内容,如果未能解决你的问题,请参考以下文章

配置中定义的 controluser 连接失败

phpmyadmin 未使用 docker 连接----配置中定义的 controluser 连接失败

无法打开 PhpMyAdmin(配置中定义的 controluser 连接失败。)

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

XAMPP/LAMPP“配置中定义的 controluser 连接失败”

配置中定义的 controluser 连接失败。在 iis7.5 上