15

我已经对此进行了研究,但是由于我在 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
  • 阿帕奇 2.2.14
  • MySQL 5.1.73
  • PHP 5.3.6
  • phpmyadmin 3.3.2
4

9 回答 9

12

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

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

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

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

于 2014-07-17T18:30:02.940 回答
10

只需取消注释该行:

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

试试看。

于 2015-08-23T11:32:37.160 回答
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/

于 2016-03-17T02:12:48.850 回答
4

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

于 2014-07-21T14:26:14.670 回答
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';

问题将得到解决。

于 2017-06-13T18:54:42.573 回答
2

有2个错误:

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

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

C。并注释以下行(可能两者都会出现 2 次取决于版本): //$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 Enter password: ERROR 1698 (28000): Access denied for user '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> 授予所有权限TO 'root'@'%'; 查询正常,0 行受影响(0,00 秒)

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

6 - 退出 mysql 并尝试在没有 sudo 的情况下重新连接

我希望这将有所帮助。现在您可以在没有密码的情况下打开 phpmyadmin。

于 2016-12-08T07:30:53.097 回答
1

首先确保你有正确的username&password在这个文件中:

/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 套接字的 localhost
  • 服务器类型:MySQL
  • 服务器版本:5.7.16 - MySQL 社区服务器 (GPL)
于 2016-11-03T17:02:56.343 回答
0

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

在您找到的代码中:

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

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

于 2016-02-05T14:21:16.280 回答
0

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

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

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

阅读phpmyadmin 文档

于 2015-10-01T14:53:01.413 回答