MySQL -- Can't connect to MySQL server
时间:2010-11-22 来源:有行动才会有收获
最近APP有时会报如下错误:
SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (4)
这个错误差不多2天会有1次,时间不固定,上午、下午和晚上都有,而且当时的连接数也不多,所以开始时认为是网络问题引发的错误。
根据MySQL的文档,当MySQL接受并开始处理连接请求后,不论之后由于什么原因导致连接不成功,都会增加Abort_Client或 Abort_Connect,可当APP报这个错时,发现Abort_Client始终没有增加,Abort_Connect也不是每次都有增加,时有时无,并且,与这2个Abort有关的参数,我们已经设置的比较合适了, | connect_timeout | 10 | | interactive_timeout | 28800 | | wait_timeout | 28800 | | net_read_timeout | 30 | | max_allowed_packet | 16777216 | 所以这条路没能走通。
又,MySQL的文档上有说,出现[2003] Can't connect to MySQL server on 'Server' (10061)时的解决方法,一般有3种情况:MySQL Server没有启动、MySQL Server启动时使用了 --skip-netwoking 选项、防火墙阻拦MySQL Port连接,总之就是通过Port或Socket连接不到MySQL,但是这三个情况我们都没有,并且,虽然Client端的报错都是2003,但是Server端的报错不同,文档上的是10061,而我们错误号是4。
最后,发现是“中断的系统调用” $ perror 4 OS error code 4: Interrupted system call 这个就傻眼了,查询了MySQL Bug,有人提问,没有回答,没办法,只能放着了,未能解决。
SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (4)
这个错误差不多2天会有1次,时间不固定,上午、下午和晚上都有,而且当时的连接数也不多,所以开始时认为是网络问题引发的错误。
根据MySQL的文档,当MySQL接受并开始处理连接请求后,不论之后由于什么原因导致连接不成功,都会增加Abort_Client或 Abort_Connect,可当APP报这个错时,发现Abort_Client始终没有增加,Abort_Connect也不是每次都有增加,时有时无,并且,与这2个Abort有关的参数,我们已经设置的比较合适了, | connect_timeout | 10 | | interactive_timeout | 28800 | | wait_timeout | 28800 | | net_read_timeout | 30 | | max_allowed_packet | 16777216 | 所以这条路没能走通。
又,MySQL的文档上有说,出现[2003] Can't connect to MySQL server on 'Server' (10061)时的解决方法,一般有3种情况:MySQL Server没有启动、MySQL Server启动时使用了 --skip-netwoking 选项、防火墙阻拦MySQL Port连接,总之就是通过Port或Socket连接不到MySQL,但是这三个情况我们都没有,并且,虽然Client端的报错都是2003,但是Server端的报错不同,文档上的是10061,而我们错误号是4。
最后,发现是“中断的系统调用” $ perror 4 OS error code 4: Interrupted system call 这个就傻眼了,查询了MySQL Bug,有人提问,没有回答,没办法,只能放着了,未能解决。
相关阅读 更多 +