当我尝试使用GRANT命令限制用户的服务器资源时,出现错误
mysql> CREATE USER 'francis'@'localhost' IDENTIFIED BY 'frank';
Query OK, 0 rows affected (0.06 sec)
mysql> GRANT ALL ON customer.* TO 'francis'@'localhost'
-> WITH MAX_QUERIES_PER_HOUR 20
-> MAX_UPDATES_PER_HOUR 10
-> MAX_CONNECTIONS_PER_HOUR 5
-> MAX_USER_CONNECTIONS 2;
错误1064(42000):您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册以获取在'MAX_QUERIES_PER_HOUR 20附近使用的正确语法 MAX_UPDATES_PER_HOUR 10 MAX_CON'位于第2行
但没有批准它的工作:
mysql> DROP USER 'francis'@'localhost';
Query OK, 0 rows affected (0.07 sec)
mysql> CREATE USER 'francis'@'localhost' IDENTIFIED BY 'frank'
-> WITH MAX_QUERIES_PER_HOUR 20;
Query OK, 0 rows affected (0.10 sec)
我的代码中有错误吗?
答案 0 :(得分:2)
听起来像您尝试在8.0版上运行针对5.7版的代码。
在GRANT
中指定资源选项的可能性在5.7版之前可用,但在8.0版中已删除。
将pointer-interconvertible与the documentation of 5.7进行比较-请注意,文档5.7版本中的resource_option
选项令牌在8.0版本中缺失。
5.7:
GRANT ... [WITH {GRANT OPTION | resource_option} ...]
8.0:
GRANT ... [WITH GRANT OPTION]
要更改现有帐户的非特权特征(即资源选项),必须在8.0及更高版本中使用ALTER USER
。或者,您也可以像以前一样将其包含在新帐户的CREATE USER
语句中。