Baru-baru ini saya mulai mendapatkan kesalahan setiap kali saya mencoba dan menambahkan konten apa pun jenisnya. Ini adalah kesalahan yang muncul di browser:
Pengecualian tanpa tertangkap tambahan dilemparkan saat menangani pengecualian.
PDOException Asli: SQLSTATE [HY000]: Kesalahan umum: 2006 Server MySQL telah hilang: SELECT COUNT (cid) DARI {comment} WHERE status =: status; Array ([: status] => 0) di comment_count_unpublished () (baris 313 dari /Applications/MAMP/htdocs/modules/comment/comment.mcomule).
Tambahan
PDOException: SQLSTATE [HY000]: Kesalahan umum: 2006 Server MySQL telah hilang: INSERT INTO {watchdog} (uid, jenis, pesan, variabel, tingkat keparahan, tautan, lokasi, pengarah, nama host, stempel waktu) VALUES (: db_insert_placeholder_0,: db_insert_placeholder_0,: db_insert_placeholder_0,: db_insert_placeholder_0,: : Array ([: db_insert_placeholder_0] => 1 [: db_insert_placeholder_1] => php [: db_insert_placeholder_2] =>% type:! Pesan dalam% function (baris% baris% file). [: Db_insert_placeholder_3] => a: 6: { s: 5: "% type"; s: 12: "PDOException"; s: 8: "! message"; s: 154: "SQLSTATE [HY000]: Kesalahan umum: 2006 Server MySQL telah hilang: PILIH COUNT (cid) DARI {comment} WHERE status =: status; Array ([: status] = & gt; 0) "; s: 9:"% function "; s: 27:" comment_count_unpublished () "; s: 5:"% file "; s: 56:" / Aplikasi / MAMP /htdocs/modules/comment/comment.module";s#:"%line";i:313;s:14:"severity_level";i:3;} [: db_insert_placeholder_4] => 3 [: db_insert_placeholder_5] = > [: db_insert_placeholder_6] =>http: // localhost: 8888 /? q = node% 2Fadd% 2Farcade-project & amp ; [: db_insert_placeholder_7] => http: // localhost: 8888 / [: db_insert_placeholder_8] => 127.0.0.1 [: db_insert_placeholder_9] => 1338336955) di dblog_watchdog () (baris 154 dari / Aplikasi / MAMP / hmpog / modules / modul / dblog / modules / dblog) dblog.module).
Saya juga mendapatkan kesalahan berikut di file kesalahan php saya:
PHP Fatal error: Pengecualian tanpa tertangkap 'PDOException' dengan pesan 'SQLSTATE [HY000]: Kesalahan umum: 2006 server MySQL telah hilang' di /Applications/MAMP/htdocs/includes/database/database.inc:136
Stack trace:
0 /Applications/MAMP/htdocs/includes/database/database.inc(2136): PDOStatement-> execute (Array)
1 /Applications/MAMP/htdocs/includes/database/database.inc(664): DatabaseStatementBase- > mengeksekusi (Array, Array)
2 /Applications/MAMP/htdocs/includes/database/database.inc(2315): DatabaseConnection-> query ('SELECT expire, ...', Array, Array)
3 / Aplikasi / MAMP / htdocs / include / lock.inc (167): db_query ('SELECT kedaluwarsa, ...', Array)
4 /Applications/MAMP/htdocs/includes/lock.inc(146): lock_may_be_available ('theme_registry: ...' )
5 /Applications/MAMP/htdocs/includes/theme.inc(447): lock_acquire ('theme_registry: ...')
6 /Applications/MAMP/htdocs/includes/bootstrap.inc(427): ThemeRegistry-> set ( Array)
7 [fungsi internal]: DrupalCacheArray -> __ destruct ()
8 {main} dilemparkan ke /Applications/MAMP/htdocs/includes/database/database.inc on line 2136
Saya mengalami sedikit kesulitan menguraikan pesan kesalahan ini. Adakah yang bisa membantu saya memahami apa yang terjadi di sini?
Kesalahan MySQL / MariaDB ini:
berarti pada dasarnya klien tidak dapat mengirim pertanyaan ke server .
Ini bisa terjadi karena kesalahan sementara, permintaan SQL yang terlalu besar atau tidak valid, kesalahan konfigurasi server Anda atau keterbatasan penyedia hosting Anda.
Secara umum kesalahan ini dapat disebabkan oleh beberapa hal, seperti:
kueri ke server salah atau terlalu besar,
Solusi: Tingkatkan
max_allowed_packet
variabel .Catatan: Pastikan variabel berada di bawah
[mysqld]
bagian, bukan[mysql]
.Catatan: Jangan lupa me-restart server MySQL / MariaDB.
Anda mendapat batas waktu dari koneksi TCP / IP di sisi klien.
Solusi: Tingkatkan
wait_timeout
variabel .Anda mencoba menjalankan kueri setelah koneksi ke server ditutup.
Solusi: Kesalahan logika dalam aplikasi harus diperbaiki.
Pencarian nama host gagal (misalnya masalah server DNS), atau server sudah mulai dengan
--skip-networking
opsi.Kemungkinan lain adalah bahwa firewall Anda memblokir port MySQL (misalnya, 3306 secara default).
Utas yang berjalan telah terbunuh, jadi coba lagi.
Anda telah menemukan bug di mana server mati saat menjalankan kueri.
Klien yang menjalankan host yang berbeda tidak memiliki hak istimewa yang diperlukan untuk terhubung.
Dan masih banyak lagi, jadi pelajari lebih lanjut di: B.5.2.9 Server MySQL telah hilang .
Untuk perincian lebih lanjut, silakan periksa MySQL atau log sistem Anda (mis
/var/log/messages
.).Untuk men-debug server atau klien MySQL, silakan periksa: 26.5 Debugging dan Porting MySQL .
Jika Anda mencoba mengimpor database dari file menggunakan
drush
ataumysql
perintah, Anda dapat:Tambahkan opsi gaya (
-f
) untukmysql
melanjutkan dan menjalankan sisa kueri.Ini berguna jika database memiliki beberapa permintaan besar terkait dengan cache yang besar, tetapi tidak relevan.
Menggunakan
drush
, coba:cat foo.sql | $(drush sqlconnect) -f
Coba terapkan
--max-allowed-packet
opsi untukmysql
dengan nilai yang lebih kecil.Tingkatkan
max_allowed_packet
danwait_timeout
dalam konfigurasi server Anda (mis~/.my.cnf
.).Buang database asli lagi dengan menggunakan
--skip-extended-insert
opsi untuk memecah pertanyaan besar. Kemudian impor file itu lagi.Lihat juga: ERROR 2006 (HY000): Server MySQL telah hilang
sumber
Jawaban yang diberikan oleh Clive biasanya, tetapi mungkin ada penyebab tambahan, terutama dengan simpul menambahkan bentuk.
Node add form biasanya besar, dan memprosesnya dapat menggunakan banyak memori (terutama jika ada pemrosesan gambar selama penyimpanan, seperti dengan modul pemangkasan). Jika server kehabisan memori, proses mysqld mungkin terbunuh yang menghasilkan pesan "hilang" yang sama.
Petunjuknya adalah untuk melihat log server. Pada mesin CentOS, Anda dapat melihat entri berikut di / var / log / messages
Solusinya di sini adalah dengan menambah RAM, atau menambah / menambah swap.
sumber