欢迎光临
我们一直在努力

Ubuntu 20.04 安装PHPMyAdmin无法使用root登陆解决方法

当我们在服务器上安装了PHPMyAdmin时,直接使用MySQL root密码登录PHPMyAdmin会提示无法登录。
这是因为在Ubuntu中运行MySQL 5.7 (或更高版本)时,MySQL的root用户的插件(plugin)值默认设置为“auth_socket”进行身份认证,而不是使用密码进行身份验证的。这样在很多情况下提供了更高的安全性和可用性,但是当你需要允许外部程序(如:PHPMyAdmin)访问时,它会使工作变的很复杂。
为了能是用MySQL root用户进行身份登录PHPMyAdmin,我们需要将其身份验证方法从“auth_socket”方式切换为“caching_sh2_password”使用密码的方式。
为此我们需要打开终端输入代码,按(Ctrl+Alt+T)启动终端
我们需要先登录mysql

$ sudo mysql

接下来,使用下面的命令检查每个MySQL用户账号使用的身份验证方法:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost |
| debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | caching_sha2_password | localhost |
| phpmyadmin       | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | caching_sha2_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
5 rows in set (0.00 sec)

在返回信息中我们可以看到root用户使用的是“auth_socket”插件进行身份验证的。这里需要将root账户设置为使用“caching_sha2_password”密码进行身份认证。这里使用“ALTER USER”命令。请务必将代码中的“password”更改为你自己需要设置的密码。

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

[qgg_gray]
注意:前面的ALTER USER语句将root MySQL 用户设置为使用caching_sha2_password插件进行身份验证。根据官方 MySQL 文档,caching_sha2_password是 MySQL 的首选身份验证插件,因为它比旧的但仍被广泛使用的mysql_native_password.

但是,某些版本的 PHP 不能与caching_sha2_password. PHP 已报告此问题已从 PHP 7.4 开始修复,但如果您稍后尝试登录 phpMyAdmin 时遇到错误,您可能需要将root设置为进行身份验证mysql_native_password:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

[/qgg_gray]
接下来就是检查用户的身份验证方式,确保root用户不在使用“auth_socket”插件进行身份认证而是使用我们想要的“caching_sha2_password”插件身份认证

SELECT user,authentication_string,plugin,host FROM mysql.user;
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | caching_sha2_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost |
| debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | caching_sha2_password | localhost |
| phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | caching_sha2_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
5 rows in set (0.00 sec)

在输出中你可以看到root用户使用的是密码进行身份认证的,现在你就可以使用你设置的密码使用root登录PHPMyAdmin了。

赞(0) 打赏
未经允许不得转载:NixonLi博客 » Ubuntu 20.04 安装PHPMyAdmin无法使用root登陆解决方法
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏