Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为多个用户设置mysql.user.max\u连接_Mysql_Mariadb - Fatal编程技术网

为多个用户设置mysql.user.max\u连接

为多个用户设置mysql.user.max\u连接,mysql,mariadb,Mysql,Mariadb,在Mariadb中,我想更新多个用户条目的max\u connections,如下所示: > UPDATE mysql.user SET max_connections = 10 WHERE User = "foo"; ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack r

在Mariadb中,我想更新多个用户条目的
max\u connections
,如下所示:

> UPDATE mysql.user SET max_connections = 10 WHERE User = "foo";
ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
看来这是不可能的

我尝试这样做的原因是,我没有找到为多台主机运行
ALTER USER
语句的方法:

> ALTER USER foo WITH MAX_USER_CONNECTIONS 20;
ERROR 1396 (HY000): Operation ALTER USER failed for 'foo'
我不想对每个
主机分别执行此操作。如何为具有相同用户名但不同主机的所有条目设置
max\u connections

我必须这样做:

ALTER USER foo@remote1 WITH MAX_USER_CONNECTIONS 20;
ALTER USER foo@remote2 WITH MAX_USER_CONNECTIONS 20;
ALTER USER foo@remote3 WITH MAX_USER_CONNECTIONS 20;

这很麻烦,因为我首先必须找出所有的遥控器,才能将它们全部更新为相同的值。

您需要更新MySQL服务器选项文件配置(即/etc/my.cnf)

如果要设置每个用户/主机,则必须针对每个用户/主机进行更改

ALTER USER 'user1'@'localhost' WITH MAX_USER_CONNECTIONS 0;
ALTER USER 'user2'@'localhost' WITH MAX_USER_CONNECTIONS 5;
ALTER USER 'user3'@'localhost' WITH MAX_USER_CONNECTIONS 20;
注意:我认为不需要这种配置,因为它应该由连接池管理。
Ref doc:

使用MySQL,您可以这样做:MySQL>创建用户“francis”@“localhost”,由“frank”标识->每小时最多查询20次->每小时最多更新10次->每小时最多连接5次->每小时最多用户连接2次;但是max_connections是一个服务器而不是用户设置。@DaveStokes查询
ALTER userfoo@localhost最大用户连接数为20(注意
@localhost
)工作正常。只是我不想对所有的用户条目都这样做。如果有一种方法可以编写代码来重复执行操作。。。也许我们可以称之为“圆圈”。除了一个部分在循环中每次都会改变外,我们可以称之为“变体”。;-)@BillKarwin我在寻找一个简单的愚蠢的解决方案。如果我必须编写一个合适的解决方案,我就不麻烦了,而是重复这些行。谢谢。我希望有一种方法可以同时更新多个条目的限制。由于每个用户都有多个条目,因此这种方法很难实现自动化。
ALTER USER 'user1'@'localhost' WITH MAX_USER_CONNECTIONS 0;
ALTER USER 'user2'@'localhost' WITH MAX_USER_CONNECTIONS 5;
ALTER USER 'user3'@'localhost' WITH MAX_USER_CONNECTIONS 20;