Rumah > pangkalan data > tutorial mysql > Mengapa Sambungan MySQL Saya Terus Terputus dengan Ralat 'Pelayan MySQL Telah Pergi'?

Mengapa Sambungan MySQL Saya Terus Terputus dengan Ralat 'Pelayan MySQL Telah Pergi'?

Barbara Streisand
Lepaskan: 2024-11-19 12:49:02
asal
520 orang telah melayarinya

Why Does My MySQL Connection Keep Dropping with the

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
Salin selepas log masuk

Penyelesaian:

Untuk membetulkan ralat ini, anda perlu laraskan tetapan max_allowed_packet dalam fail konfigurasi MySQL anda (my.ini atau serupa). Begini caranya:

  1. Kenal pasti saiz maksimum objek BLOB yang anda rancang untuk masukkan.
  2. Buka fail konfigurasi MySQL dan cari bahagian [mysqld].
  3. Tambah baris berikut ke bahagian:
max_allowed_packet = [SIZE]
Salin selepas log masuk

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
...
Salin selepas log masuk
  1. Simpan fail konfigurasi dan mulakan semula MySQL.

Pertimbangan Tambahan:

  • Sahkan bahawa anda telah menutup mana-mana sambungan terbuka atau pernyataan yang disediakan dengan betul selepas digunakan.
  • Jika anda terus mengalami isu, semak tetapan MySQL lain seperti net_write_timeout dan connect_timeout.
  • Pertimbangkan untuk meningkatkan kepada versi MySQL dan PHP yang lebih baharu, kerana ia mungkin menyediakan pengendalian yang lebih mantap daripada paket data yang besar.

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!

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