Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Membetulkan \'Ralat umum: Pelayan MySQL 2006 telah hilang\' Apabila Memasukkan Data?

Bagaimana untuk Membetulkan \'Ralat umum: Pelayan MySQL 2006 telah hilang\' Apabila Memasukkan Data?

Linda Hamilton
Lepaskan: 2024-10-29 11:25:30
asal
355 orang telah melayarinya

How to Fix

Cara Menyelesaikan "Ralat umum: Pelayan MySQL 2006 telah hilang" Semasa Memasukkan Rekod

Pengenalan:
Memasukkan data ke dalam pangkalan data MySQL kadangkala boleh mengakibatkan ralat "Ralat umum: pelayan MySQL 2006 telah hilang." Ralat ini berlaku apabila sambungan ke pelayan hilang, biasanya disebabkan oleh salah satu daripada dua pembolehubah dalam konfigurasi MySQL.

Penyelesaian:
Kunci untuk menyelesaikan ralat ini adalah dengan melaraskan pembolehubah tunggu_masa tamat dan interaktif_masa tamat. Pembolehubah ini mengawal masa maksimum yang MySQL akan tunggu sebelum menamatkan sambungan yang tidak aktif.

Melaraskan Pembolehubah Tamat Masa:

  1. Sambung ke pangkalan data menggunakan kaedah pilihan anda ( cth., PHP, SQL console).
  2. Laksanakan pertanyaan berikut: SET session wait_timeout=28800
  3. Selain itu, jika anda menghadapi ralat "Ralat umum: 2013 Hilang sambungan ke pelayan MySQL semasa pertanyaan, " anda juga mungkin perlu melaksanakan: SET session interactive_timeout=28800
  4. Laksanakan pertanyaan berikut untuk mengesahkan nilai yang dikemas kini: TUNJUKKAN PEMBOLEH UBAH SEPERTI '%timeout%'

Contoh dalam 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; } } }
Salin selepas log masuk

Pertimbangan Tambahan:

  • Nilai lalai untuk tunggu_masa tamat ialah 28800 saat (8 jam), iaitu keterlaluan. Menetapkannya kepada nilai yang lebih rendah, seperti 300 saat, adalah disyorkan.
  • Meningkatkan nilai tamat masa perlu dilakukan dengan berhati-hati kerana ia boleh membawa kepada isu prestasi jika sambungan tidak ditutup dengan betul.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan \'Ralat umum: Pelayan MySQL 2006 telah hilang\' Apabila Memasukkan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan