尝试向 mariadb 用户授予权限时,在表错误中找不到匹配的行

亚当麦格克

看起来这应该很容易...我真的从mysql手册中提取了这个命令,稍微改变了授予的权限和用户。我只是想为用户添加权限,但在命令行中出现错误。这是我尝试发送的命令:

GRANT SELECT,INSERT,UPDATE,DELETE ON mytable.* TO 'myclient';

这是我得到的错误:

ERROR 1133 (28000): Can't find any matching row in the user table

表和用户已经存在。这是我引用的 mysql 手册的一部分:https :
//dev.mysql.com/doc/refman/8.0/en/adding-users.html

我在这里做错了什么?

(MariaDB 版本 10.1.34 在 Ubuntu 服务器 18.04 上)

保罗·坎贝尔

文档

作为用户,当您连接到 MySQL 服务器时,您的身份由您连接的主机和您指定的用户名决定。

因此,MySQL 权限不会授予指定用户,而是授予从特定主机连接的用户。这样,命名用户可以根据他们的连接位置拥有不同的权限。

在授予权限时,通常指定 theuserhostpart 以便它们可以与正确的用户和主机组合匹配。如果主机部分被省略,如这里,那么 MySQL 假定主机是通配符 '%'(即来自任何地方)。因此,您的命令被视为

GRANT SELECT,INSERT,UPDATE,DELETE ON mytable.* TO 'myclient'@'%';

并且您引用的错误消息意味着 mysql.user 表中没有记录,其中user= 'myclient' 和host= '%'。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章