1227: Access denied; you need (at least one of) the PRIVILEGE(访问被拒绝;需要(至少一项)PRIVILEGE 权限)
MySQL含义
用户缺少所尝试操作所需的权限。该操作需要超出账户已授予权限的权利。
原因
缺少 SUPER、PROCESS、RELOAD 或 CREATE USER 等管理权限;未授予读取全局视图/表所需的权限;特定操作(SET GLOBAL、binlog 访问)需要更高权限。
解决方法
查看当前权限:SHOW GRANTS FOR CURRENT_USER(); 用有权限的账户授予所需权限:GRANT PROCESS ON *.* TO 'app_user'@'host';(GRANT 立即生效;不需要 FLUSH PRIVILEGES)。尽可能使用动态权限(如 SYSTEM_VARIABLES_ADMIN)代替 SUPER。遵循最小权限原则。
同一数据库的其他条目
- 1091Can't DROP 'x'; check that column/key exists(无法 DROP 'x';请检查该列/键是否存在)
- 1093You can't specify target table 'x' for update in FROM clause(不能在 FROM 子句中指定要更新的目标表 'x')
- 1305PROCEDURE does not exist(PROCEDURE 不存在)
- 3730Cannot drop table referenced by a foreign key constraint(无法删除被外键约束引用的表)
- 2013Lost connection to MySQL server during query(查询期间与 MySQL 服务器的连接丢失)
- 1153Got a packet bigger than 'max_allowed_packet' bytes(收到的数据包大于 'max_allowed_packet' 字节)
- 1969MariaDB: Query execution was interrupted (max_statement_time exceeded)(MariaDB:查询执行被中断(超出 max_statement_time))