连接云服务器后MariaDB root授权新用户遇1045权限拒绝问题求助
解决MariaDB授权时出现ERROR 1045 (28000)的问题
你遇到的这个问题,核心原因是当前登录的root@'%'用户本身没有足够的权限执行GRANT操作。默认情况下,MariaDB初始的root用户通常是root@localhost拥有完整的超级权限,而root@'%'(允许远程登录的root)可能权限被限制了,甚至没有GRANT OPTION权限。
下面是具体的解决步骤:
步骤1:切换到本地权限更高的root用户登录
退出当前的远程root登录,在云服务器的本地终端执行:
mysql -u root -p
这里登录的是root@localhost,这个用户默认拥有所有权限,包括授权权限。
步骤2:检查root@'%'的权限(可选)
如果想确认之前的root@'%'权限情况,可以执行:
SHOW GRANTS FOR 'root'@'%';
如果结果里没有WITH GRANT OPTION,就说明这个用户确实无法给其他用户授权。
步骤3:用root@localhost完成bill用户的创建与授权
直接在root@localhost的会话里执行你的创建和授权命令:
CREATE USER 'bill'@'%' IDENTIFIED BY 'passpass'; GRANT ALL PRIVILEGES ON *.* TO 'bill'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; -- 刷新权限使变更生效
额外提示
如果你的云服务器不允许本地直接登录root@localhost(比如有些云服务商限制),可以尝试先给root@'%'补上授权权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
之后再用root@'%'登录执行授权操作。
内容的提问来源于stack exchange,提问作者Jwala




