在 ubuntu 上安装 phpmyadmin 后,用户“root”@“localhost”的访问被拒绝

use*_*331 0 php sql ubuntu phpmyadmin

我按照以下步骤在我的 ubuntu 服务器上安装了 phpmyadmin:

https://www.rosehosting.com/blog/install-phpmyadmin-on-ubuntu-16-04/

我按照以下步骤安装了 apache、php、mysql:

https://vijayasankarn.wordpress.com/2017/01/17/setting-lamp-stack-in-ubuntu-16-04-using-aws-ec2/

当我登录到http://myserver.com/phpmyadmin 时,出现此错误:

mysqli_real_connect(): (HY000/1045): 用户 'root'@'localhost' 访问被拒绝(使用密码:YES)

我究竟做错了什么?我是否遗漏了上面链接中没有的步骤?

我试过这个:

mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;

$ service mysql restart
Run Code Online (Sandbox Code Playgroud)

和这个

mysql -u root -p
use mysql;
update user set plugin="" where user='root';
flush privilege;
Run Code Online (Sandbox Code Playgroud)

小智 5

此错误可以修复,以下命令将重新配置您的 phpMyAdmin 凭据以访问 MYSQL DB:

sudo dpkg-reconfigure phpmyadmin
Run Code Online (Sandbox Code Playgroud)

/!\ 这将提供一些交互式菜单,允许您使用新凭据重新配置 phpMyAdmin 包 /!\

但是您也可以手动重新配置它:

1 - 以 root 身份登录 mysql

mysql -u root -p
Run Code Online (Sandbox Code Playgroud)

2 - 确保 'phpmyadmin' 用户存在:

SELECT User FROM mysql.user;
Run Code Online (Sandbox Code Playgroud)

3 - 切换到适当的 MYSQL 数据库:

use phpmyadmin;
Run Code Online (Sandbox Code Playgroud)

4 - 为 phpmyadmin 用户设置新密码

UPDATE user SET password=PASSWORD('yourNewPassword') WHERE User='phpmyadmin';
Run Code Online (Sandbox Code Playgroud)