有两个错误:
1. 按照你的配置定义的controluser连接失败
解决方法:
a. 打开终端:
sudo gedit /etc/phpmyadmin/config.inc.php
b. 取消注释以下行(根据版本可能会出现两次):
$cfg['Servers'][$i]['AllowNoPassword'] = TRUE;
c. 注释以下行(根据版本可能会出现两次):
//$cfg['Servers'][$i]['controluser'] = $dbuser;
//$cfg['Servers'][$i]['controlpass'] = $dbpass;
2. 用户'root'@'localhost'被拒绝访问
当您打开phpmyadmin或在终端中以非root用户身份打开mysql时,会出现此错误。此错误是由于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-检查您的数据库中存在的帐户
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';
Query OK, 0 rows affected (0,00 sec)
4-重新创建用户
mysql> CREATE USER 'root'@'%' IDENTIFIED BY '';
Query OK, 0 rows affected (0,00 sec)
5-授予用户权限,别忘了刷新权限
mysql> GRANT ALL PRIVILEGES ON . TO 'root'@'%';
Query OK, 0 rows affected (0,00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0,01 sec)
6-退出mysql并尝试重新连接而不使用sudo
我希望这会有所帮助。现在您可以无需密码打开phpmyadmin。