MySQL 访问被拒绝错误:故障排除和解决方案
尝试执行 MySQL 查询时,您可能会遇到“ERROR 1044 (42000):用户 '''@'localhost' 访问数据库 'db' 时被拒绝”消息。此错误表明当前用户没有足够的权限来访问所请求的数据库。
理解错误
错误消息“访问被拒绝”表明用户尝试执行该查询没有连接到数据库或执行所需操作所需的权限。在这种特定情况下,尝试建立与数据库的连接的用户被识别为来自本地主机的空字符串 ('')。
识别根本原因
要解决该错误,检查用户帐户设置和权限非常重要。您可以使用“show grants”命令来显示当前用户授予的权限。在提供的示例中,显示了以下授予:
GRANT USAGE ON *.* TO ''@'localhost'
此输出表示来自本地主机的空字符串用户已被授予对所有数据库的 USAGE 权限。虽然这允许用户连接到 MySQL,但它不会授予创建或操作数据库或表的权限。
解决问题
要解决该错误,您可以向所需的用户授予必要的权限。但是,由于您当前没有任何用户 ID,因此您需要创建一个。但是,您需要创建一个具有必要权限的用户帐户来执行 CREATE USER 操作。
使用 Root 帐户
确保您拥有所需的权限权限,您可以尝试使用 root 帐户连接 MySQL。在提供的示例中,以 root 身份进行连接的初始尝试未成功。要以 root 身份登录,您应该在 Bash shell 中运行以下命令,而不是在 MySQL 命令行中:
mysql -u root -p
出现提示时输入 root 密码。以 root 身份登录后,您可以继续创建具有所需权限的新用户。
以上是MySQL 访问被拒绝:如何排查并解决'用户 ''@'localhost' 的访问被拒绝”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!