【问题标题】:PDO general error: 2006 mysql server has gone awayPDO 一般错误:2006 mysql server has gone away
【发布时间】:2019-10-13 14:47:49
【问题描述】:

我正在使用 linux 并尝试使用 php 7.2 创建一些表,但是当我执行命令时它会给出如下错误。谁能帮我解决这个问题?

[PDOException] SQLSTATE[HY000] [2006] MySQL 服务器已消失
[ErrorException] PDO::__construct(): MySQL 服务器已消失

class Database extends PDO{
    function __construct(){
        $options = array(
            PDO::ATTR_PERSISTENT => true,
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
        );
        try{
            parent::__construct(DB_TYPE.':host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8',DB_USER,DB_PASS, $options);
        }catch (PDOException $e) {
            echo "Got PDOException\n";
            var_dump($this);
        }

    }
}

我无法将此页面的说明设置为我拥有的课程 https://dev.mysql.com/doc/refman/8.0/en/gone-away.html

【问题讨论】:

  • ATTR_PERSISTENT 选项会导致问题。 PHP 认为连接仍然存在,但它以某种方式关闭。所以你得到一个错误。见this question
  • 不,很遗憾,这根本不重要

标签: php pdo


【解决方案1】:

$db->e​​xec('SET session wait_timeout=60');

【讨论】:

    猜你喜欢
    • 2016-01-19
    • 2013-12-16
    • 2011-12-11
    • 2011-02-04
    • 1970-01-01
    • 2012-12-19
    • 2012-10-30
    • 2015-12-02
    相关资源
    最近更新 更多