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中文网其他相关文章!