Yii mysql服务器消失了

时间:2013-10-13 09:14:08

标签: php mysql yii

设置一个空闲的队列来处理数据,因为我不时会收到有关mysql服务器的错误消息。有没有人有任何关于如何在Yii中优雅地解决这个问题的建议,当给出错误时,我可以重新启动数据库连接并继续。

不要过多关注mysql设置以增加wait_time,因为它可以帮助最小化问题但不能解决问题。

修改 这可能看起来很有趣/悲伤取决于你如何看待它...我在运行的查询中添加了@符号并且它们被try-catch捕获...如果错误代码是,我重置数据库连接在范围[2006]内,否则应用程序返回错误......希望这似乎是一个合理的答案......

2 个答案:

答案 0 :(得分:3)

我搜索了很多关于这个问题,当你使用特别是Yii命令时会发生这种情况。如果autoConnect未设置为false,我不知道为什么Yii为每个AR创建一个新连接,这意味着重用一个打开的连接。

    'db' => array(
         // Reuse a connections and not exceed the number of connections to got error 2006
        'autoConnect' => false,
         // If you are using a transactions and persistent connections
        'attributes' => array(
            PDO::ATTR_PERSISTENT => TRUE,
            PDO::ATTR_AUTOCOMMIT => FALSE
        )
    ),

答案 1 :(得分:1)

我通过添加

解决了
max_allowed_packet = 128M
wait_timeout=3600
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

在mysql的my.cnf中