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
436 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!

sumber:php.cn
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!