国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

Gateway 環(huán)境捕獲不到 "MySQL server has gone away“異常

WGYHAPPY

在 Gateway 里面,獲取 SQL 連接的代碼:

$ident = md5($dsn);

try {
    if(!empty(self::$instances)){
        $message = self::$instances->getAttribute(PDO::ATTR_SERVER_INFO);
        if(strpos($message, 'Lost connection to MySQL server during query') !== FALSE || strpos($message, 'MySQL server has gone away') !== FALSE){
            throw new \PDOException("MySQL server has gone away!");
        }
    }else{
        self::$instances = new PDO($dsn, Config::DB_USERNAME, Config::DB_PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET CHARACTER SET utf8;', PDO::ATTR_PERSISTENT => Config::DB_ATTR_PERSISTENT));
        self::$instances->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        if (Config::DB_SET_TIMEZONE == TRUE) {
            static::setDbTimezone(Config::DB_TIMEZONE, self::$instances);
        }
    }

} catch (\Exception $e) {
    Log::getLogger()->error($e->getMessage());
    self::$instances = NULL;
    self::$instances = new PDO($dsn, Config::DB_USERNAME, Config::DB_PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET CHARACTER SET utf8;', PDO::ATTR_PERSISTENT => Config::DB_ATTR_PERSISTENT));
    self::$instances->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    if (Config::DB_SET_TIMEZONE == TRUE) {
        static::setDbTimezone(Config::DB_TIMEZONE, self::$instances);
    }
}

return self::$instances;

把 Mysql 的 wait_timeout 設(shè)置 6 秒,執(zhí)行跑腳本,sleep(7) 之后,在獲取pdo ,會直接拋出異常;
但是, 把這個代碼放在 Gateway 環(huán)境里面,設(shè)置估計7秒之后,才去獲取 pdo,沒有拋出異常,而是?PDO::getAttribute 直接返回了 “Lost connection to MySQL server during query”, 這是什么梗?

3660 0 0
0個回答

年代過于久遠,無法發(fā)表回答
??