看起来这应该很容易...我真的从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 权限不会授予指定用户,而是授予从特定主机连接的用户。这样,命名用户可以根据他们的连接位置拥有不同的权限。
在授予权限时,通常指定 theuser
和host
part 以便它们可以与正确的用户和主机组合匹配。如果主机部分被省略,如这里,那么 MySQL 假定主机是通配符 '%'(即来自任何地方)。因此,您的命令被视为
GRANT SELECT,INSERT,UPDATE,DELETE ON mytable.* TO 'myclient'@'%';
并且您引用的错误消息意味着 mysql.user 表中没有记录,其中user
= 'myclient' 和host
= '%'。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句