Warning: PDO::__construct(): MySQL server has gone away in

Warning: PDO::__construct(): MySQL server has gone away in

By lzhi at 2014-12-06
0人收藏 • 4387人看过

/includes/PDO.class.php on line 47

是怎么回事?在线等回答。

6 个回复 | 最后更新于 2014-12-06
lincanbin
2014-12-06
#1

MySQL那边的设置有问题

lincanbin
2014-12-06
#2

这个提示的意思是MySQL挂了,可能是超时,也可能是查询语句返回结果集过大。

总之就是MySQL的设置不科学,或者你的主机已经严重超载了。

你可以试试把MySQL中的wait_timeout 调大。

lzhi
2014-12-06
#3

回复#2 @lincanbin :调大 了,并重启了数据库,还是不行。主机性能还有很多,我用的是阿里云

lzhi
2014-12-06
#4

回复#2 @lincanbin :刷新一下又不会出现,但又经常会重现

lincanbin
2014-12-06
#5

回复#4 @lzhi :那应该是你的环境配置不支持性能更佳的长连接,这个程序默认是开启MySQL长连接的。

打开includes/PDO.class.php,找到(第45行左右)

$this->pdo = new PDO('mysql:dbname='.$this->DBName.';host='.$this->Host, $this->DBUser, $this->DBPassword, array(PDO::ATTR_PERSISTENT => true,
				PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
				));

删除字符串

PDO::ATTR_PERSISTENT => true,

这样就关闭了MySQL长连接。

lzhi
2014-12-06
#6

回复#5 @lincanbin :修改了,问题消失,谢谢


登 录


现在注册

QQ  登 录    Weibo  登 录    GitHub  登 录