给MySQL用户授予SUPER权限时遭遇1045访问拒绝错误求助
解决MySQL授权时的1045 Access Denied错误
问题原因
你当前登录的用户indiaskinexam@localhost没有足够权限执行GRANT SUPER操作——这类高权限的授权命令,需要由拥有GRANT OPTION权限的超级用户(比如默认的root用户)来执行。
解决方案步骤
步骤1:切换到超级用户登录MySQL
打开终端,用root用户登录(如果你的环境有其他具备超级权限的用户也可以使用):mysql -u root -p输入root用户的密码后进入MySQL命令行界面。
步骤2:执行授权操作
根据你的MySQL版本选择对应命令:- 对于MySQL 5.x版本,直接执行授权命令即可:
GRANT SUPER ON *.* TO 'indiaski_app'@'localhost' IDENTIFIED BY 'appsocial'; FLUSH PRIVILEGES; - 对于MySQL 8.0及以上版本,
IDENTIFIED BY不能与GRANT命令混用,需要分开创建用户和授权:-- 先创建用户(如果该用户尚未存在) CREATE USER IF NOT EXISTS 'indiaski_app'@'localhost' IDENTIFIED BY 'appsocial'; -- 授予SUPER权限 GRANT SUPER ON *.* TO 'indiaski_app'@'localhost'; -- 刷新权限使更改立即生效 FLUSH PRIVILEGES;
- 对于MySQL 5.x版本,直接执行授权命令即可:
步骤3:验证权限是否生效
切换到indiaski_app用户登录后,执行以下命令查看权限:SHOW GRANTS FOR 'indiaski_app'@'localhost';如果结果中包含
GRANT SUPER ON *.* TO 'indiaski_app'@'localhost',说明权限已成功授予。
重要提醒
SUPER是MySQL中权限等级极高的权限,拥有该权限的用户可以修改全局系统变量、终止任意线程、执行敏感的备份恢复操作等。请仅在确实需要的场景下授予该权限,避免带来安全风险。
内容的提问来源于stack exchange,提问作者kammy007
相关产品推荐
相关产品推荐

