我多年来一直在使用相同的数据库抽象库。但是今天它开始在我的日志中写下这些Notice(8)消息。
应用程序正常运行,但每次脚本连接到数据库时都会记录相同的通知。
我无法想象会发生什么变化。这发生在我当地的开发机器上。
OS X 10.6.2
PHP 5.3.0 (cli)
mysql Ver 14.12 Distrib 5.0.87
mysqlnd 5.0.5-dev - 081106 - $Revision: 1.3.2.27 $
答案 0 :(得分:12)
如果有人在努力解决这个问题,请点击此处修复:
尝试在mysql wait_timeout
配置文件中更改/设置my.cnf
:
wait_timeout=3600
此配置文件位于/etc/mysql/my.cnf
(Ubuntu / Debian)和/usr/local/mysql/my.cnf
(OSX)。
重启mysql服务器,它应该可以工作。
答案 1 :(得分:3)
到目前为止,我找到的唯一解决方案是改变
window.onload = function () {
@onload_js
}
对此并不满意,但同时也适用。 我使用非常旧的PC进行个人项目,因此我猜测问题可能与资源不足有关。
答案 2 :(得分:2)
我使用PHP 5.6.20,PDO(仅抛出异常),MySQL 5.6.28具有持久连接,一切都是utf8mb4。我的整个堆栈都设置为utf-8(dsn字符串设置,连接,数据库服务器数据库,表,列,Apache 2.4.12,PHP,所有网页,CSS ......你的名字)。
我间歇性地收到以下错误消息,这很神秘且烦人。
注意:PDO :: __ construct():发送5个字节失败,errno = 32文件/ foo / bar / baz
中的管道损坏假设持久连接是一个非交互式,那么MySQL 5.6手册(5.1.4服务器系统变量)说明服务器系统变量{{1} }。
服务器等待活动的秒数 关闭之前的非交互式连接。
默认值:28800秒
wait_timeout
最大值:31536000秒
(28000 sec / 1) * (1 hour / 3600 sec) = 8 hours
因此,请检查((31536000 sec / 1) * (1 hr / 3600 sec) * (1 day / 24 hrs) = 365 days
中的wait_timeout
,然后确定是否需要持久连接。 此外,您还必须投入使您的应用程序更加强大,以解决已被拆除的持久连接。显然,您不希望您的客户在第二天回来(已经回家过夜了,然后说'#34;到底是什么?!"
答案 3 :(得分:0)
可能是因为您的数据包含'utf-8'字符。我有类似的问题是由它引起的。
异常:mysql_query():发送1462592字节失败,错误为errno = 32 Broken pipe
我用过
mysql -u username -p database < dump_file # this is bad
导入sql文件包含很多UTF8字符(泰语),但我没有为[mysql]设置default-character-set = utf8。因此数据库中错误的编码数据导致了这个问题。
答案 4 :(得分:-1)
只需删除mysqlnd
驱动程序并使用mysqli
是mysqlnd
更现代,但稳定性呢?
下一个命令可以解决您的问题
apt-get remove php5-mysqlnd
apt-get install php5-pdo-mysql