如何解决yii2在多个数据库中执行超时的错误



我在应用程序中设置了两个数据库连接。一个用于mysql,另一个用于oracledb。我通过从每个数据库的表中读取数据,分别测试了这两种连接,一切都很好。当使用db2作为数据库连接id的gii生成模型时,我会得到一个超时错误。我已经将脚本的执行时间增加到300秒,但仍然会出现执行超时错误。当将db与gii一起使用时,它可以正常工作。

db.php中的数据库配置如下所示:

return [
'mysql' => [
'class' => 'yiidbConnection',
'dsn' => 'mysql:host=' . DATABASE_SERVER . ';port=' . DATABASE_PORT. ';dbname=' . DATABASE_NAME,
'username' => DB_USER,
'password' => DB_PASS,
'charset' => 'utf8',
],
'oracle' => [
'class' => 'yiidbConnection',
'dsn' => 'oci:dbname=//dbserver:dbport/dbname;charset=UTF8',
'username' => 'username',
'password' => 'password'
],
]

在我的web.php中,我有这个:

$db = require __DIR__ . '/db.php';
$config = [
// 
'components' => [
//
'db' => $db['mysql'],
'db2' => $db['oracle'],
//
]
//
]

尝试增加连接超时。在main-local.php 中

'db' => [
'attributes' => [
PDO::ATTR_TIMEOUT => 10, // timeout value in seconds
]
]

最新更新