几个同时连接到MySQL的奇怪问题

时间:2017-11-22 19:55:59

标签: php mysql linux-kernel centos

我有一个运行bash文件的cron,这个bash文件将同时打开大约1000个PHP脚本,这些PHP脚本中的每一个都与MySQL建立连接。运行一段时间后,我看到间歇性的MySQL错误,如:

SQLSTATE[HY000] [2003] Can't connect to MySQL server on '127.0.0.1' (4)

我发现错误(4)是操作系统级别(系统调用中断)。

/var/log/messages/上的

有很多kernel: nf_conntrack: table full, dropping packet条消息,我不知道它是否与此问题有关。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

简而言之,您的服务器很忙,您已达到允许的最大连接数。

修复此增加最大配置连接数限制

# Temporarily Solution
echo 524288 > /proc/sys/net/netfilter/nf_conntrack_max


# Permanent Solution
# Add following line on /etc/rc.d/rc.local

$ vim /etc/rc.d/rc.local
echo 524288 > /proc/sys/net/netfilter/nf_conntrack_max

$ chmod a + x /etc/rc.d/rc.local

编辑

更简单的方法是这样做 /etc/sysctl.conf文件。 使用root权限打开ssh / term并添加一行 /etc/sysctl.conf文件为: net.netfilter.nf_conntrack_max = 65536 并保存文件,然后输入: sysctl -p