Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Membetulkan Ralat \'MySQL server has gone away\': Panduan untuk Memahami dan Menyelesaikan Pemutusan Sambungan Pangkalan Data?

Bagaimana untuk Membetulkan Ralat \'MySQL server has gone away\': Panduan untuk Memahami dan Menyelesaikan Pemutusan Sambungan Pangkalan Data?

Susan Sarandon
Lepaskan: 2024-10-30 16:20:02
asal
602 orang telah melayarinya

How to Fix the

Cara Menyelesaikan Ralat Pemutus Pelayan MySQL: "Pelayan MySQL telah hilang"

Apabila melakukan sisipan pangkalan data, ralat "Ralat umum: Pelayan MySQL 2006 telah hilang" boleh berlaku, terutamanya selepas memproses bilangan rekod tertentu.

Punca:

Punca isu ini biasanya berkaitan dengan MySQL pembolehubah tunggu_masa tamat. Apabila MySQL menunggu lebih lama daripada tempoh tamat masa yang ditentukan untuk respons daripada klien, ia menamatkan sambungan.

Penyelesaian:

Untuk menangani masalah ini, anda boleh mengubah suai pembolehubah sesi wait_timeout sebelum melaksanakan pertanyaan sisipan:

<code class="php">$results = $db->query("SET session wait_timeout=28800", FALSE);</code>
Salin selepas log masuk

Dengan menetapkan wait_timeout kepada nilai yang lebih besar (dalam kes ini, 28800 saat atau 8 jam), MySQL akan membenarkan lebih banyak masa untuk proses pemasukan selesai sebelum ditamatkan sambungan.

Pertimbangan Tambahan:

  • Adalah penting untuk ambil perhatian bahawa meningkatkan tunggu_masa tamat mungkin tidak selalu menjadi penyelesaian terbaik. Menetapkannya terlalu tinggi boleh mengakibatkan penggunaan sumber pelayan yang berlebihan.
  • Rujuk amalan terbaik untuk menetapkan tunggu_masa tamat dengan sewajarnya berdasarkan keperluan khusus aplikasi anda.
  • Jika isu berterusan, pertimbangkan untuk melaraskan pembolehubah interaktif_masa tamat serta:
<code class="php">$results = $db->query("SET session interactive_timeout=28800", FALSE);</code>
Salin selepas log masuk

Pengubahsuaian ini boleh menghalang MySQL daripada menamatkan sambungan kerana ketidakaktifan semasa proses pemasukan.

Pengesahan:

<code class="php">$results = $db->query("SHOW VARIABLES LIKE '%timeout%'", TRUE);
echo "<pre class="brush:php;toolbar:false">";
var_dump($results);
echo "
";
Salin selepas log masuk

Kod ini akan memaparkan tetapan semasa pembolehubah wait_timeout dan interactive_timeout untuk mengesahkan bahawa ia telah diubah suai.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \'MySQL server has gone away\': Panduan untuk Memahami dan Menyelesaikan Pemutusan Sambungan Pangkalan 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