首页  >  文章  >  数据库  >  为什么我无法在 Ubuntu 16.04 中以“root”身份连接到 MySQL?

为什么我无法在 Ubuntu 16.04 中以“root”身份连接到 MySQL?

Barbara Streisand
Barbara Streisand原创
2024-10-30 11:53:02732浏览

Why Can't I Connect to MySQL as 'root' in Ubuntu 16.04?

Ubuntu 16.04 中“root”用户的数据库访问被拒绝

在 Ubuntu 16.04 中使用 Web 服务器访问数据库时,您可能会遇到错误“SQLSTATE[HY000] [1698] 用户‘root’@‘localhost’的访问被拒绝”。尽管创建了具有所有权限的新用户,还是会出现此问题。

MySQL 5.7 中的根用户限制

此错误的根本原因在于 MySQL 5.7 中引入的更改,这限制了没有 sudo 权限的“root”用户的使用。在以前的版本中,用户可以使用“mysql -u root”命令以“root”身份访问 MySQL,而无需提升权限。然而,在 MySQL 5.7 中,这种方法不再可行。

解决方法

要解决此问题,您需要创建一个具有必要权限的新用户并使用从 PHP 应用程序或其他非命令行工具建立数据库连接时,请使用该用户而不是“root”。

PHP 代码

在您的 PHP 代码中,替换用户名和密码以及新创建用户的凭据:

<code class="php">protected $name = 'new_user';
protected $pass = 'new_password';</code>

从命令行进行根访问

虽然您不能直接使用“root”用户GUI 或非命令行应用程序,您仍然可以使用 sudo 以“root”身份从命令行访问 MySQL:

sudo mysql -u root

请记住,此方法会提升您的权限,仅应在必要时使用。出于安全原因,建议创建一个专用用户进行数据库管理并使用该用户而不是“root”。

以上是为什么我无法在 Ubuntu 16.04 中以“root”身份连接到 MySQL?的详细内容。更多信息请关注PHP中文网其他相关文章!

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