首页 >数据库 >mysql教程 >插入数据时如何修复'常规错误:2006 MySQL 服务器已消失”?

插入数据时如何修复'常规错误:2006 MySQL 服务器已消失”?

Linda Hamilton
Linda Hamilton原创
2024-10-29 11:25:30300浏览

How to Fix

如何解决插入记录时出现“一般错误:2006 MySQL 服务器已消失”

简介:
将数据插入 MySQL 数据库有时会导致错误“常规错误:2006 MySQL 服务器已消失”。当与服务器的连接丢失时会出现此错误,通常是由于 MySQL 配置中的两个变量之一所致。

解决方案:
解决此错误的关键是调整wait_timeout 和 Interactive_timeout 变量。这些变量控制 MySQL 在终止非活动连接之前等待的最长时间。

调整超时变量:

  1. 使用您喜欢的方法连接到数据库(例如,PHP、SQL 控制台)。
  2. 执行以下查询:SET session wait_timeout=28800
  3. 此外,如果遇到错误“General error: 2013 Lost connection to MySQL server while query, " 您可能还需要执行: SET session Interactive_timeout=28800
  4. 执行以下查询来验证更新的值:SHOW VARIABLES LIKE '%timeout%'

示例在 PHP 中:

<code class="php"><?php

$db = new db();

$results = $db->query("SHOW VARIABLES LIKE '%timeout%'", TRUE);
echo "<pre class="brush:php;toolbar:false">";
var_dump($results);
echo "
"; $results = $db->query("SET session wait_timeout=28800", FALSE); // UPDATE - this is also needed $results = $db->query("SET session interactive_timeout=28800", FALSE); $results = $db->query("SHOW VARIABLES LIKE '%timeout%'", TRUE); echo "
";
var_dump($results);
echo "
"; class db { public $mysqli; public function __construct() { $this->mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASS, DB_NAME); if (mysqli_connect_errno()) { exit(); } } public function __destruct() { $this->disconnect(); unset($this->mysqli); } public function disconnect() { $this->mysqli->close(); } function query($q, $resultset) { /* create a prepared statement */ if (!($stmt = $this->mysqli->prepare($q))) { echo("Sql Error: " . $q . ' Sql error #: ' . $this->mysqli->errno . ' - ' . $this->mysqli->error); return false; } /* execute query */ $stmt->execute(); if ($stmt->errno) { echo("Sql Error: " . $q . ' Sql error #: ' . $stmt->errno . ' - ' . $stmt->error); return false; } if ($resultset) { $result = $stmt->get_result(); for ($set = array(); $row = $result->fetch_assoc();) { $set[] = $row; } $stmt->close(); return $set; } } }

其他注意事项:

  • wait_timeout 的默认值为 28800 秒(8 小时),该值过高。建议将其设置为较低的值,例如 300 秒。
  • 应谨慎增加超时值,因为如果连接未正确关闭,可能会导致性能问题。

以上是插入数据时如何修复'常规错误:2006 MySQL 服务器已消失”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn