PDO 一般错误:2006 mysql server has gone away
Posted
技术标签:
【中文标题】PDO 一般错误:2006 mysql server has gone away【英文标题】:PDO general error: 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
不,很遗憾,这根本不重要
【参考方案1】:
$db->exec('SET session wait_timeout=60');
【讨论】:
以上是关于PDO 一般错误:2006 mysql server has gone away的主要内容,如果未能解决你的问题,请参考以下文章
PHP PDO 等效于 mysql_num_rows [重复]
在docker上使用laravel时无法连接到mysql数据库(未找到,pdo,连接被拒绝)