我已经查看了this但是因为我在Ubuntu 10.04而不是XAMPP上运行并且已经创建了phpmyadmin数据库,我可以通过终端使用root和phpmyadmin用户登录。
我如何安装: sudo apt-get install lamp-server ^ sudo apt-get install phpmyadmin
我可以使用root和phpmyadmin用户在终端上本地登录。 我可以查看phpmyadmin登录页面。 我发布到服务器的phpinfo.php页面正常工作。
答案 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)
当您在phpmyadmin中连接的用户已在mySQL中更新时,也会发生这种情况。我刚刚卸载/更新/重新安装phpmyadmin并同时更改了一些mySQL设置。
修复方法是使用正确的登录凭据(用户名,密码等)更新config-db.php文件。
在Ubuntu 12.04中,它位于/etc/phpmyadmin/config-db.php。
答案 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用户名和密码是相同的
答案 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
这为我解决了......
在: