首页  >  文章  >  数据库  >  为什么我无法在 Ubuntu 中以 root 用户身份访问我的 MySQL 数据库?

为什么我无法在 Ubuntu 中以 root 用户身份访问我的 MySQL 数据库?

Patricia Arquette
Patricia Arquette原创
2024-10-30 00:10:28328浏览

Why Can't I Access My MySQL Database as Root User in Ubuntu?

SQLSTATE[HY000] [1698] 本地主机上的“root”用户访问被拒绝

遇到“SQLSTATE[HY000] [1698] 用户'访问被拒绝设置 Ubuntu Web 服务器后出现 root'@'localhost'” 错误可能会令人沮丧。虽然数据库访问似乎可以通过终端进行访问,但 PHP 和 phpMyAdmin 中的错误仍然存​​在。了解根本原因对于解决此问题至关重要。

Root 用户限制

MySQL 5.7 开始引入了对 root 用户的限制。如果没有提升的权限,则无法再使用 mysql -u root 直接访问 MySQL。相反,需要 sudo mysql -u root,提示输入密码。

此限制扩展到 GUI 和非命令行应用程序。要缓解此问题,请创建一个具有必要权限的新用户,而不是使用 root 用户。

PHP 中的实现

在提供的 PHP 代码中,登录凭据为硬编码。要绕过 root 用户限制,请修改 __construct() 方法以合并具有适当权限的新用户:

<code class="php">public function __construct() {
    try {
        $this->conn = new PDO("mysql:host=$this->host;dbname=$this->db", $this->name, $this->pass, self::$settings);
    } catch (PDOException $e) {
        echo $e->getMessage();
    }
}</code>

将 $this->name 和 $this->pass 替换为新创建的用户的凭据。确保用户拥有访问数据库所需的权限。

其他资源

有关进一步的见解和故障排除步骤,请参阅以下资源:

  • [MySQL 错误代码 1698:用户 'root'@'localhost' 访问被拒绝](https://www.cybertec-postgresql.com/en/mysql-error-1698-access-denied-for-用户 rootlocalhost/)

以上是为什么我无法在 Ubuntu 中以 root 用户身份访问我的 MySQL 数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn