现象当然是mysql_ping 阻塞,如下图所示:
可以通过设置读取超时来解决。
int time_out = 1;
mysql_options(mysql,MYSQL_OPT_READ_TIMEOUT,(const char*)&time_out);
//There areretries if necessary, so the total effective timeout value is three times theoption value.
测试设置读超时对查询的影响,如果查询sql时间比较长,会出现Lost connection to MySQL server during query错误。
参考:
http://stackoverflow.com/questions/5079788/how-to-set-mysql-ping-timeout-with-mysql
http://blog.csdn.net/guomsh/article/details/9855551