Rumah > pangkalan data > tutorial mysql > Mengapa Pelayan MySQL saya Terus Berkata \'Ralat umum: Pelayan MySQL 2006 telah hilang\'?

Mengapa Pelayan MySQL saya Terus Berkata \'Ralat umum: Pelayan MySQL 2006 telah hilang\'?

Mary-Kate Olsen
Lepaskan: 2024-10-29 18:21:47
asal
400 orang telah melayarinya

Why Does my MySQL Server Keep Saying

MySQL Server Telah Pergi: Menyelidiki 'General error: 2006' Enigma

Apabila melakukan sisipan pukal ke dalam pangkalan data MySQL, ditakuti "SQLSTATE[HY000]: Ralat umum: 2006 pelayan MySQL telah hilang" boleh muncul. Isu yang kelihatan sukar difahami ini menghalang kelancaran pelaksanaan operasi pangkalan data. Untuk membongkar rahsianya, kami memulakan perjalanan untuk memahami ralat samar ini dan meneroka penyelesaian yang berpotensi.

Menyingkap Punca Tersembunyi: Tunggu_masa tamat

Pelayan "MySQL mempunyai hilang" ralat selalunya berpunca daripada had tamat masa. Secara khusus, ia berasal daripada pembolehubah MySQL bernama wait_timeout. Pembolehubah ini menentukan masa (dalam saat) MySQL akan sabar menunggu aktiviti klien sebelum menamatkan sambungan.

Secara lalai, tunggu_masa tamat ditetapkan kepada 30 saat pada hos kongsi. Walau bagaimanapun, apabila operasi pangkalan data melebihi had masa ini, sambungan akan ditamatkan secara tiba-tiba, membawa kepada ralat yang disebutkan di atas.

Menyelesaikan Isu: Melaraskan tunggu_masa tamat

Untuk menyelesaikan masalah ini isu, kami perlu melanjutkan masa menunggu untuk menampung tempoh operasi pangkalan data kami. Ini boleh dicapai dengan mengeluarkan pertanyaan "SET session wait_timeout=28800", yang menetapkan wait_timeout untuk sesi semasa kepada 28800 saat (8 jam).

Pertimbangan Tambahan: Interactive Timeout

Dalam senario tertentu, anda juga mungkin perlu mengubah suai pembolehubah interactive_timeout bersama wait_timeout. Pembolehubah ini mengawal tempoh maksimum untuk sambungan interaktif terbiar. Jika interactive_timeout lebih rendah daripada masa pelaksanaan operasi, sambungan akan ditutup secara tiba-tiba, mengakibatkan ralat yang sama.

Pelaksanaan: Kod PHP

Untuk melaksanakan penyelesaian ini dalam PHP, gunakan contoh kod berikut:

<code class="php">$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 "
";
Salin selepas log masuk

Sebelum melaksanakan operasi pangkalan data anda, tambahkan baris ini pada skrip PHP anda untuk melaraskan tetapan tamat masa. Ini membolehkan operasi selesai tanpa menghadapi ralat "Pelayan MySQL telah hilang".

Atas ialah kandungan terperinci Mengapa Pelayan MySQL saya Terus Berkata \'Ralat umum: Pelayan MySQL 2006 telah hilang\'?. 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