Memahami Ralat "MySQL Server Has Gone Away"
Apabila bekerja dengan skrip yang melaksanakan penyataan yang disediakan PDO berulang, adalah mungkin untuk menghadapi ralat menunjukkan "Pelayan MySQL telah hilang." Ralat ini sering berlaku selepas beberapa pelaksanaan yang berjaya, terutamanya dalam persekitaran dengan MySQL versi 5.0.77 dan PHP versi 5.2.12.
Punca Ralat:
Punca isu ini terletak pada melebihi saiz paket maksimum yang dibenarkan oleh pelayan MySQL. Contohnya, apabila memasukkan objek BLOB yang besar, saiz paket boleh melebihi had yang dikonfigurasikan.
Mesej Ralat dalam Log Pelanggan dan Pelayan:
Di sisi klien, ralat nyata sebagai "pelayan MySQL telah hilang." Dalam log pelayan (jika pengelogan ralat didayakan), anda mungkin melihat mesej berikut:
Error 1153 Got a packet bigger than 'max_allowed_packet' bytes
Penyelesaian:
Untuk membetulkan ralat ini, anda perlu laraskan tetapan max_allowed_packet dalam fail konfigurasi MySQL anda (my.ini atau serupa). Begini caranya:
max_allowed_packet = [SIZE]
di mana [SAIZ] ialah saiz paket maksimum yang dikehendaki dalam bait. Contohnya, untuk menetapkan saiz paket maksimum kepada 200 megabait:
[mysqld] ... max_allowed_packet = 200M ...
Pertimbangan Tambahan:
Atas ialah kandungan terperinci Mengapa Sambungan MySQL Saya Terus Terputus dengan Ralat 'Pelayan MySQL Telah Pergi'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!