我已经调查了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 回答
由于您可以在终端上以控制用户身份登录,因此您的配置文件很可能不包含控制用户的正确用户名或密码 .
在文本编辑器中打开
config.inc.php
并查看controluser和controlpass行 - 确保它们与您成功使用的用户名和密码完全匹配 . 尝试完全注释掉这两行,看看是否收到不同的错误消息 .如果您已使用包管理器进行安装,请注意配置文件在
/etc/phpmyadmin
中展开,如果您手动添加这些行,则它们可能会被另一个配置文件覆盖 . 尝试grep -Ri controluser /etc/phpmyadmin/*
以查看它是否出现在多个文件中 .由于您已经对配置文件进行了've used the package manager, you should let it handle configuring the database. Try removing any edits you'并且正在运行
dpkg-reconfigure -plow phpmyadmin
(这是在命令提示符下运行的shell命令);这将重新配置phpmyadmin包,并询问您是否要允许dbconfig-common为您和controluser创建phpMyAdmin表 .只是 uncomment 这一行:
试试吧 .
可能的问题:更新了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/
通过将协议切换到tcp并连接到'127.0.0.1'而不是'localhost',我已成功连接 . 即使MySql守护程序套接字正在运行,仍然无法通过Unix Socket连接 .
有2个错误:
1. Connection for controluser as defined in your configuration failed
解:
一个 . 打开终端:sudo gedit /etc/phpmyadmin/config.inc.php
湾并取消注释以下行(可能两次将取决于版本):$ cfg ['Servers'] [$ i] ['AllowNoPassword'] = TRUE;
C . 并注释以下几行(可能两次将取决于版本):// $ cfg ['Servers'] [$ i] ['controluser'] = $ dbuser; // $ cfg ['Servers'] [$ i] ['controlpass'] = $ dbpass;
2. Access denied for user '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;
3 - 删除当前root @ localhost帐户
mysql> DROP USER'root'@'localhost';查询OK,0行受影响(0,00秒)
4 - 重新创建您的用户
mysql> CREATE USER'root'@'%'IDENTIFIED BY'';查询OK,0行受影响(0,00秒)
5 - 为您的用户授予权限,不要忘记刷新权限
mysql>授予所有特权 . TO 'root' @ '%';查询OK,0行受影响(0,00秒)
mysql> FLUSH PRIVILEGES;查询OK,0行受影响(0,01秒)
6 - 退出mysql并尝试在没有sudo的情况下重新连接
我希望这将有所帮助 . 现在你可以在没有密码的情况下打开phpmyadmin了 .
创建一个数据库phpmyadmin
打开文件
在config-db.php文件中设置root密码 .
问题将得到解决 .
在我的情况下,我使用套接字连接 . 通过设置$ cfg ['Servers'] [$ i] ['controlhost'] =''; (所以要清空)消息'配置中定义的控制用户连接失败'消失了 . 我认为原因是如果你设置'controlhost'phpMyAdmin尝试 Build 一个新的数据库连接,从而忽略了套接字 .
在您找到的代码中:
在if块的末尾, Build 新连接 .
首先确保您在此文件中具有正确的
username
&password
:如_1513844中所述:
username
&password
用于访问phpmyadmin database
.因此,
phpmyadmin database
应该有一个user
,其名称和密码分配给它至少Database-specific privileges
那为我解决了....
上:
服务器:通过UNIX套接字的Localhost
服务器类型:MySQL
服务器版本:5.7.16 - MySQL社区服务器(GPL)
如果你在xammp的窗口上转到
C:\xammp\phpMyAdmin\ config.inc
,打开它并找到这一行,现在确保phpMyAdmin数据库中的用户pma用户名和密码是相同的
阅读phpmyadmin documentation