由于未提示输入 root 密码,phpmyadmin 安装失败

由于未提示输入 root 密码,phpmyadmin 安装失败

An error occurred while installing the database: │ │ ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using │ password: NO) .

为什么在设置 phpmyadmin 时它不提示我输入 root 密码?这让我很困惑。它不要求输入密码,尝试在没有密码的情况下登录,当然被拒绝。它只提示我输入 phpmyadmin 用户的新密码。

我该如何解决这个问题?我不知所措。这是 Ubuntu 16.04 的全新安装。我已经设置了 MySQL 并且运行了一段时间,没有任何问题。我可以通过 进行登录,mysql -u root -p没有任何问题。

答案1

回到这个问题,因为我相信我已经找到了答案。我使用 mariadb,据我所知,当您以超级用户权限运行 mysql 时,即使有密码,您也只能以 -u root 身份登录。这是有道理的,因为像 mariadb 这样的系统服务是以 root 身份运行的。因此,尝试从标准用户帐户访问 mariadb 的 root 用户是行不通的。

这让我犯了好几次错误,因为在这种情况下,mysql 的行为与 mariadb 不同,而且我已经习惯了 mysql 的行为方式。如果你运行

mysql -u root -p并输入正确的密码(使用 mysql,而不是 mariadb),它就会起作用。似乎 mariadb 增加了另一层安全性,需要你不仅知道 mysql 根用户的密码,还需要拥有超级用户权限。因此,你必须这样做

sudo mysql -u root -p任何时候您需要以 root 用户身份访问数据库。我还没有测试这是否仅适用于命令行访问,或者在用户级别运行的程序是否也会被拒绝使用适当的凭据——我怀疑他们会被拒绝。这鼓励更安全的做法,即创建具有有限权限范围的用户,这些用户只能访问他们需要访问的数据库。

回到最初的观点:这可能是 phpmyadmin 中的一个错误,因为通过 apt 安装它意味着在安装过程中需要超级用户权限。不确定 phpmyadmin 的具体问题是什么,但我知道为什么会发生这个错误。

答案2

打开新的终端标签,登录服务器,然后运行:

mysqladmin -u root -p'oldpassword' password ''

*用当前 root 密码替换 oldpassword

然后返回到 phpmyadmin 安装程序选项卡。单击重试并完成该过程。现在它可以正常工作了。

然后,完成后返回其他选项卡并运行:

mysqladmin -u root -p password 'oldpassword'

当要求输入密码时按回车键。

*再次用所需的 root 密码替换旧密码。

恭喜,phpmyadmin 现已安装完毕,并且 root 权限再次得到保护。

答案3

我通过暂时将 root 密码更改为空白来解决这个问题。

 mysqladmin -u root -p'oldpassword' password ''

如何将我的 MySQL 根密码改回空?

运行此命令后,最好在终端的单独选项卡中执行,记得运行相反的操作将其改回来:

mysqladmin -u root password 'oldpassword'

相关内容