看起来这应该很容易…我从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
我做错什么了?
(ubuntu服务器18.04上的mariadb版本10.1.34)
1条答案
按热度按时间cigdeys31#
从文档中
作为用户,当您连接到mysql服务器时,您的身份由您连接的主机和您指定的用户名决定。
因此,mysql特权不是授予命名用户的,而是授予从特定主机连接的用户的。这样,命名用户可以根据其连接位置拥有不同的权限。
授予特权时,通常会指定
user
以及host
使它们能够与正确的用户和主机组合相匹配。如果省略了主机部分,如这里所示,那么mysql假设主机是通配符“%”(即来自任何地方)。因此,你的命令被视为您引用的错误消息意味着mysql.user表中没有记录
user
='我的客户'和host
= '%'.