MySQL Error Access denied

当您使用数据库时,您可能会看到错误消息:“Access denied; you need (at least one of) the SUPER privilege(s) for this operation”。当您的数据库用户没有足够的权限来执行某些操作时,就会发生这种情况。

本文中,我们将查看导致此错误的一些常见情况以及如何修复它们。

Case 1: Creating or Changing Database Objects

如果您尝试创建或更改数据库对象,如表、存储过程或视图,如果您的用户帐户没有相应的权限,您可能会得到 Access denied 错误。

解决方案

为您的用户帐户提供必要的权限。

GRANT ALL PRIVILEGES ON your_database_name.* TO ‘your_username’@’localhost’;
FLUSH PRIVILEGES;

Case 2: Importing a SQL Dump

在导入 SQL 转储文件时,如果用户帐户没有在数据库中创建或更改对象的权限,则可能会看到 Access denied 错误。

解决方案

如 Case 1 的解决方案中所述,为用户帐户提供必要的权限。

Case 3: Doing Global Operations

有些操作需要 SUPER 特权,如启动或停止复制、结束其他用户会话或更改全局变量。如果您尝试在没有 SUPER 权限的情况下执行这些操作,您将得到 Access denied 错误。

解决方案

向数据库管理员请求 SUPER 权限或运行此 SQL 命令

GRANT SUPER ON *.* TO 'your_username'@'localhost';
FLUSH PRIVILEGES;

Case 4: MySQL Server Running with Limited Privileges

有时,MySQL 服务器可能会使用 skip-grant-tables 选项运行,该选项关闭身份验证,并为所有用户提供 SUPER 特权。如果后面服务器在没有这个选项的情况下启动,那么拥有 SUPER 权限的用户可能会得到 Access denied 错误。

解决方案

重新启动 MySQL 服务器,不使用 skip-grant-tables 选项,并向用户帐户授予必要的权限,如案例 1 和案例 3 的解决方案所述。

我的开源项目

酷瓜云课堂-在线教育解决方案


鸠摩智首席音效师
472 声望9 粉丝

身强体健,龙精虎猛的活着。