Bootstrap

mysql has gone away解决方案

案例:

  TP5

$user2 = db('user')->where('id',21)->find();
sleep(10);
$user = db('user')->where('id',20)->find();

    由于mysql wait_timeout,interactive_timeout参数设置的10s,程序sleep 10s后,由于框架的db连接都是单例的,所以第二个查询语句使用的mysql连接和第一次是同一个,但是原先mysql连接等待超过了10s,被mysql强制关闭,导致第二次查询会出现msyql has gone away;

解决方案:

1调大mysql wait_timeout,interactive_timeout参数;

2每次连接使用新的msyql连接,不用单例模式

$user2 = db('user',[],true)->where('id',21)->find();
sleep(10);
$user = db('user',[],true)->where('id',20)->find();

 

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;