我安装了 Sphinx,并且有大约 40 个索引,它们连接到外部 mysql 数据库来提取数据。我为这些索引设置了 cronjobs,并每 5 分钟重新索引一次。换句话说,每 5 分钟我的服务器就会与外部 mysql 服务器建立 40 个连接。
问题是,大约 10 分钟后,它就会停止工作,如果我通过 ssh 连接到 sphinx 服务器并尝试从命令行连接到 mysql 数据库,它会返回
ERROR: index '...': sql_connect: Can't connect to MySQL server on '...' (110) (DSN=mysql://...:***@...:3306/...).
如果我从本地机器执行相同操作,我可以连接,因此 mysql 服务器本身完全正常。现在,如果我通过 SSH 连接到 sphinx 服务器并重新启动 iptables,一切都会重新开始工作,并且可以再次连接到外部 mysql 服务器。我对 iptables 不太熟悉,所以如果有人能给我一些线索,告诉我如何调试这个问题或是什么原因造成的,我将不胜感激!
答案1
答案不太好,但这是我能找到的唯一解决方案:我最终将该 mysql 服务器的 IP 添加到 csf.allow 文件中,该文件包含永远不应被阻止的 IP 列表。到目前为止,它似乎有效。我还在那里找到了另一个 mysql 服务器的 IP,这解释了为什么它一直工作而没有被阻止。