"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > \ "일반 오류 : 2006 MySQL Server가 사라졌습니다 \"데이터를 삽입 할 때?

\ "일반 오류 : 2006 MySQL Server가 사라졌습니다 \"데이터를 삽입 할 때?

2025-03-23에 게시되었습니다
검색:714

How to Fix \

를 해결하는 방법 "일반 오류 : 2006 MySQL Server가 사라졌습니다. 이 오류는 일반적으로 MySQL 구성의 두 변수 중 하나로 인해 서버에 대한 연결이 손실 될 때 발생합니다.

솔루션 :
이 오류를 해결하기위한 키는 Wait_Timeout 및 interactive_timeout 변수를 조정하는 것입니다. 이 변수는 비활성 연결을 종료하기 전에 MySQL이 기다리는 최대 시간을 제어합니다.

타임 아웃 변수 조정 :

WAKE_TIMEOUT = 28800

또한, 오류가 발생하면, "일반 오류 : 2013 쿼리 중에 mySQL 서버에 대한 연결 손실"도 실행해야 할 수도 있습니다 : SEET Interactive_Timeout = 28800

query("SHOW VARIABLES LIKE '%timeout%'", TRUE);
echo "
";
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; } } }

php의 예 :

  • php $ db = 새로운 db (); $ results = $ db-> query ( " '%timeout%'", true와 같은 변수 표시); echo ""; var_dump ($ results); echo ""; $ results = $ db-> query ( "세션 세션 wait_timeout = 28800", false); // 업데이트 - 이것은 또한 필요합니다 $ results = $ db-> query ( "Set Session Interactive_Timeout = 28800", false); $ results = $ db-> query ( " '%timeout%'", true와 같은 변수 표시); echo ""; var_dump ($ results); echo ""; 클래스 DB { 공개 $ mysqli; 공개 함수 __construct () { $ this-> mysqli = new mysqli (db_server, db_user, db_pass, db_name); if (mysqli_connect_errno ()) { 출구(); } } 공개 함수 __destruct () { $ this-> disternect (); unset ($ this-> mysqli); } 공개 함수 연결 끊기 () { $ this-> mysqli-> close (); } 함수 쿼리 ($ q, $ resultSet) { / * 준비된 진술 작성 */ if (! ($ stmt = $ this-> mysqli-> 준비 ($ q))) { echo ( "SQL 오류 :". $ q. 'SQL 오류 #:'. $ this-> mysqli-> errno. 거짓을 반환합니다. } / * 쿼리 실행 */ $ stmt-> execute (); if ($ stmt-> errno) { echo ( "SQL 오류 :". $ q. 'SQL 오류 #:'. $ stmt-> errno. '-'. $ stmt-> error); 거짓을 반환합니다. } if ($ resultSet) { $ result = $ stmt-> get_result (); for ($ set = array (); $ row = $ result-> fetch_assoc ();) { $ set [] = $ 행; } $ stmt-> close (); 반환 $ set; } } }
  • 추가 고려 사항 :

How to Fix \


[8 시간)는 과도합니다. 300 초와 같이 더 낮은 값으로 설정하는 것이 좋습니다.

연결이 올바르게 닫히지 않으면 성능 문제로 이어질 수 있으므로 시간 초과 값을 늘려야합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3