
mysql> SHOW PROCESSLIST;
+----+-----------------+-----------+------+---------+------+------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-----------------+-----------+------+---------+------+------------------------+------------------+
| 4 | event_scheduler | localhost | NULL | Daemon | 2379 | Waiting on empty queue | NULL |
| 8 | root | localhost | NULL | Query | 0 | starting | SHOW PROCESSLIST |
+----+-----------------+-----------+------+---------+------+------------------------+------------------+
2 rows in set (0.00 sec)当发现某些用户使用大量的连接占用服务器的资源时,可以通过设置全局变量“max_user_connections”来限制用户的连接,并可以通过下面的变量限制单独的用户使用资源:
MAX_STATEMENT_TIME:允许的最大查询执行时间,以秒为单位。超过该时间会自动终止查询。MAX_USER_DEFINED_VARIABLES:允许的最大用户定义变量数量。MAX_TMP_TABLES:允许的最大临时表数量。MAX_JOIN_SIZE:允许的最大连接表大小(用于防止过大的连接查询)。mysql可以限制用户单次查询的数据量吗,比如每次最大只可以查5条数据
ALTER USER 'root'@'%'
WITH MAX_QUERIES_PER_HOUR 100
MAX_UPDATES_PER_HOUR 20
MAX_CONNECTIONS_PER_HOUR 0
MAX_USER_CONNECTIONS 10;如果希望将这些值重新设置为默认值,则可以将这些值设置为0,例如,
ALTER USER 'root'@'%' WITH MAX_CONNECTIONS_PER_HOUR 0;小伙伴在平常有没有遇到以下这种情况:遇到技术难题时,网上教程一堆堆,优秀的很多,但也有很多是过时的,或者是copy来copy去,甚至错别字都没改。
我公众号的技术文章,都是亲自校验过的。至少可以保证在发文的一段时间,不会过时。如果你在实操过程中,有遇到问题,可以在同名公众号留言,免费解答,相互学习,相互成长^v^