Yii2 是否有任何本机选项可以在连接丢失时重新连接到 MySQL?我的意思是在 yii\db 组件级别。查看了这些组件,但发现只有 $this->db->close() 和 $this->db->open();但它们没有按预期工作。尝试在配置中使用主池,再次不起作用。预先感谢。
在数据库连接字符串中使用
autoReconnect=true
:
mysql://db_user:db_user@localhost/mydb?autoReconnect=true
未经测试,但你可以尝试这样做。
// check if Database component is initialised
if (property_exists(Yii::$app, 'db')) {
// get component object
$oDb = Yii::$app->db;
assert($oDb instanceof \yii\db\Connection);
// open a new connection if the old one is not active
if (!$oDb->isActive) {
$oDb->open();
}
}
您应该在查询数据库之前粘贴此代码。
сaptain 的 2 个解决方案显而易见:
在查询之前添加事件处理程序调用