工作中用到swoole框架,需要一个php进程常驻后台运行,每到第二天早上来数据库就连接不上,提示mysql server has gone away
最后才意识到mysql连接有超时时间的 默认8小时(wait_timeout参数),所以白天总是好好的,第二天早上来公司就不行了
//连接已经存在,直接返回
if ($this->_linkr && mysqli_ping($this->_linkr)) {
$this->_link = $this->_linkr;
return true;
}
//不存在 则重新进行数据库连接
$this->_linkr = $this->_connect($host);
只需要在上面加上mysqli_ping就好了 超过连接超时时间后$this->_linkr所指的句柄资源其实已经断开了