我一直从我的代码中得到以下错误:
Database connect failed: PDO::__construct(): send of 12 bytes failed with errno=110 Connection timed out
这个错误持续发生在api上.如果那个api在白天不停地被调用,那么这种情况就不会发生.只有当api不使用一段时间.
我可以通过执行php-fpm restart / reload来解决这个问题,但这不应该是解决方案.
有谁知道如何解决这个问题?
– 编辑 –
这是连接数据库的代码:
public function connectDatabase($allow_persistent = true)
{
$this->db = null;
$this->readINI();
$pdo_attr = [
PDO::ATTR_PERSISTENT => $allow_persistent,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8;",
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true,
];
$this->db = new PDO("mysql:host=" . $this->db_data_dbhost . ";dbname=" . $this->db_data_dbname . ";charset=utf8", $this->db_data_username, $this->db_data_password, $pdo_attr);
$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
为了更多地进行迭代,目前在两个API上使用它.
>一个一直被客户使用,从未遇到过这个问题
>第二个并没有被许多客户使用,因为它仍在开发中,只有少数客户用于测试目的.我们确实尝试将应用程序推送到appstore,但它会被此问题击落.如上所述,此API最终会遇到错误,如果不重新启动/重新加载php-fpm服务,将无法从此状态恢复.