You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

连接云服务器后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

火山引擎 最新活动