抓取数据出现MySQL server has gone away

在抓取数据的时候总是提示:MySQL server has gone away, 在这样的情况下正是由于某两条SQL查询之间隔离的时间过长,导致该连接自动断开。 解决方案:在打开链接的时候如下多加一个参数

mysql_connect($dbhost, $dbuser, $dbpw, false, MYSQL_CLIENT_INTERACTIVE)

然后接着执行这样的query:

mysql_query("set interactive_timeout=24*3600");

这样的话,就不会出现mysql server has gone away 了。
为什么呢? 看看官方手册里的说明
MYSQL_CLIENT_COMPRESS 使用压缩的通讯协议
MYSQL_CLIENT_IGNORE_SPACE 允许在函数名后留空格位
MYSQL_CLIENT_INTERACTIVE 允许设置断开连接之前所空闲等候的 interactive_timeout 时间(代替 wait_timeout)。
MYSQL_CLIENT_SSL 使用 SSL 加密。本标志仅在 MySQL 客户端库版本为 4.x 或更高版本时可用。在 PHP 4 和 Windows 版的 PHP 5 安装包中绑定的都是 3.23.x。

16
Mar 2008
AUTHOR WiFeng
CATEGORY Web
COMMENTS No Comments