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

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

/includes/PDO.class.php on line 47

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

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

MySQL那边的设置有问题

2014-12-06   #2

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

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

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

2014-12-06   #3

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

2014-12-06   #4

回复#2 @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长连接。

2014-12-06   #6

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

登录后方可回帖

登 录
信息栏
购买PHP虚拟主机 / VPS

Carbon Forum是一个基于话题的高性能轻型PHP论坛

下载地址:Carbon Forum v5.0.1
QQ群:12607708(QQ我不常上)

donate

手机支付宝扫描上方二维码可向本项目捐款

Loading...