配置中定义的controluser连接失败

时间:2014-07-17 15:05:19

标签: phpmyadmin ubuntu-10.04 mysql-5.1

我已经查看了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

9 个答案:

答案 0 :(得分:12)

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

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

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

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

答案 1 :(得分:8)

取消注释该行:

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

试试吧。

答案 2 :(得分: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/

答案 3 :(得分:4)

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

答案 4 :(得分:1)

有2个错误:

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

湾并取消注释以下行(可能两次将取决于版本): $ cfg ['Servers'] [$ i] ['AllowNoPassword'] = TRUE;

℃。并注释以下几行(可能两次将取决于版本):   // $ cfg ['Servers'] [$ i] ['controluser'] = $ dbuser;   // $ cfg ['Servers'] [$ i] ['controlpass'] = $ dbpass;

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

当您打开phpmyadmin或在终端上使用sudo命令(而不是root用户)打开mysql时,会出现这种情况。此错误是由root用户引起的。这个错误背后的共鸣是你当前的ubuntu用户没有在终端打开mysql的优势。如果你用sudo命令打开mysql,它将打开但不能从你当前的用户打开。例如:

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

的访问被拒绝

这里目前的ubuntu用户是联想。因此,您必须为root用户授予权限。 过程:

1 - 首先,连接sudo mysql

sudo mysql -u root

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

SELECT User,Host FROM mysql.user;

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| admin            | localhost |
| debian-sys-maint | localhost |
| magento_user     | localhost |
| mysql.sys        | localhost |
| root             | localhost |

3 - 删除当前root @ localhost帐户

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

4 - 重新创建用户

的MySQL>创建用户'root'@'%'IDENTIFIED BY''; 查询正常,0行受影响(0,00秒)

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

的MySQL>在上授予所有特权。 TO'root'@'%'; 查询正常,0行受影响(0,00秒)

的MySQL> FLUSH特权; 查询OK,0行受影响(0,01秒)

6 - 退出mysql并尝试重新连接而不使用sudo

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

答案 5 :(得分:1)

创建数据库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';

问题将得到解决。

答案 6 :(得分:0)

如果你在xammp的窗口上转到C:\xammp\phpMyAdmin\ config.inc,打开它并找到这一行,现在确保

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

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

阅读phpmyadmin documentation

答案 7 :(得分:0)

在我的情况下,我使用套接字连接。通过设置$ cfg ['服务器'] [$ i] [' controlhost'] ='' (以便清空)消息'配置中定义的控制用户连接失败'消失了。我认为原因是如果你设置了“控制主机”' phpMyAdmin尝试建立与数据库的新连接,从而忽略了套接字。

在您找到的代码中:

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

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

答案 8 :(得分:0)

首先请确保您拥有正确的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)