网站访问量大了的时候mysql链接数天然就多了,当超出mysql最大链接数的时候就会出现错误,当出现too many字样的错误的时候通常是由于链接数的问题,只须要修改最大链接数max_conection就好了, 但在windows server 2003上还有一种常见错误, "Error: Can't connect to MySQL server on 'localhost' (10048)" 这就不是最大链接数的问题了. 具体缘由大概为:
1. mysql短期内瞬间增长太多链接数,而tcp链接在短期内又不释放, 这样就致使不能有新的链接产生,因此提示链接不到mysql数据库. 2. 5000如下端口用完了,而5000以上端口禁止链接.
既然知道问题大概缘由咱们就从这两个方面入手.
第1、 修改tcp链接释放时间,在注册表里修改: tcp链接释放时间默认240,咱们能够修改的小一些,通常在30-60之间就能够了. 找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键 并建立名为 TcpTimedWaitDelay 的新 REG_DWORD 值 设置此值为十进制 30, 十六进制为 0×0000001e
第2、 修改容许链接最大端口号 MaxUserPort 设置(增长最大值端口链接): 找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键 并建立名为 MaxUserPort 的新 REG_DWORD 值 设置此值为十进制最低 32768
第1、第2、执行完毕后从新启动服务器。mysql