php.ini mysqlnd.net_read_timeout,当无法访问服务器时,PHP的PDO忽略了ATTR_TIMEOUT选项

只是放

ini_set("default_socket_timeout", 2);

之前你的PDO()连接字符串。

(在Windows上测试,在Linux上也应该很好。)

为什么?

通过手册追逐:

mysqlnd驱动程序使用套接字进行底层连接,而设置超时则需要使用套接字(stream)超时功能。 (参考:http://php.net/manual/en/mysqlnd.notes.php)

Using mysqlnd means using PHP streams for underlying connectivity. For mysqlnd, the PHP streams documentation (Streams) should be consulted on such details as timeout settings, not the documentation for the MySQL Client Library.

如果你想要更多的控制,那么你可能能够更具体地控制实际的套接字:我还没有测试过,因为它只是unix。要设置套接字mysqlnd使用,可以使用ini设置指定套接字(参考:http://php.net/manual/en/ref.pdo-mysql.connection.php)

If PDO_MYSQL is compiled against mysqlnd a default socket can be set thru the pdo_mysql.default_socket setting.

但可能更容易设置默认值,然后重新设置完成后…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值