mysql max_user_connections 机器人流量

标签 mysql perl

每隔一两个月就会有一群机器人访问我的网站并以如此快的速度打开连接,以至于达到我当前的 max_user_connection 值 25(将其增加到 75)。目前,我重新启动服务器,它再次正常工作,直到下一个集群到来。它是一个用 perl 编程的网上商店,尝试使用 DBI connect 获取数据。

所以我有一些问题: 一段时间后问题会自行解决吗?还是打开的进程会运行直到重置并尝试从锁定的数据库中获取信息? 是否可以执行一个小查询来检查数据库上的最大用户连接数,如果它太高,则退出? 还有其他想法可以防止 DOS 攻击或机器人群(考虑在 htaccess 中重新引用亚洲 IP)吗?

最佳答案

您可以使用模块检测(例如机器人)。例如HTTP::BrowserDetect

use HTTP::BrowserDetect;

my $browser = HTTP::BrowserDetect->new($user_agent_string);
if ( $browser->robot() ) {
   # dont open an mysql connection, 
   # return a cached version of the requested page
   # or something like that
   ...
}

关于mysql max_user_connections 机器人流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23935052/

相关文章:

mysql - SQL比较几乎相等的记录

用于查找本月最喜欢的视频的 MySQL 查询

regex - grep 两个分隔符之间的子字符串

perl - 如果 perl 是按引用调用,为什么会发生这种情况?

perl - 如何使用 cpanm 为离线服务器 bundle 模块

perl - 我如何调用祖 parent 的构造函数(因为未定义 parent 的构造函数)?

perl - 在 OpenBSD 上构建 perl 扩展模块

mysql - 遍历 Nodejs MySQL 结果集中的字段

php - MySQL多选?

PHP 没有按预期从 MySQL 查询返回结果