Saya mencoba mengimpor file sql besar melalui phpMyAdmin ... Tetapi tetap menunjukkan kesalahan
'Server MySQL telah pergi'
Apa yang harus dilakukan?
mysql
phpmyadmin
FrancisMV123
sumber
sumber
max_allowed_packet
. Agak kasar, tetapi jika berhasil, Anda dapat menemukan nilai waras.Jawaban:
Seperti yang dinyatakan di sini :
Edit:
Perhatikan bahwa file opsi MySQL tidak memiliki perintah mereka sudah tersedia sebagai komentar (seperti di php.ini misalnya). Jadi Anda harus mengetikkan perubahan / Tweak di
my.cnf
ataumy.ini
dan menempatkan mereka dalammysql/data
direktori atau di salah satu jalan lain, di bawah kelompok yang tepat pilihan seperti[client]
,[myslqd]
, dll Sebagai contoh:Kemudian restart server. Untuk mendapatkan nilainya, ketikkan klien mysql:
sumber
SHOW VARIABLES
query MySQL) dan file yang saya impor memiliki beberapa catatan yang sangat besar. Saya membuka file my.ini (saya menjalankan Windows) dan mengatur nilainya menjadi inimax_allowed_packet = 64M
:, me-restart MySQL dan menjalankan kembali impor.wait_timeout
garisBagi saya solusi ini tidak berhasil, jadi saya mengeksekusi
di klien SQL saya.
Jika tidak dapat mengubah ini dengan layanan MYSql berjalan, Anda harus menghentikan layanan dan mengubah variabel dalam file "my.ini".
Sebagai contoh:
sumber
php.ini
file (seperti yang disarankan oleh @GBD dalam jawabannya) dan file konfigurasi MySQLmy.ini
untuk membuatnya berfungsi.SHOW variables LIKE 'max_allowed_packet'
max_allowed_packet
dalam satu klien dan kemudian mengimpor.sql
file besar di sesi lain akan berfungsi dengan baik.Jika Anda bekerja pada XAMPP maka Anda dapat memperbaiki Server MySQL telah pergi masalah dengan perubahan berikut ..
buka file my.ini Anda lokasi my.ini adalah (D: \ xampp \ mysql \ bin \ my.ini)
ubah nilai variabel berikut
sumber
Jika Anda menjalankan dengan nilai default maka Anda memiliki banyak ruang untuk mengoptimalkan konfigurasi mysql Anda.
Langkah pertama yang saya rekomendasikan adalah meningkatkan max_allowed_packet menjadi 128 juta.
Kemudian unduh skrip MySQL Tuning Primer dan jalankan. Ini akan memberikan rekomendasi ke beberapa sisi konfigurasi Anda untuk kinerja yang lebih baik.
Lihat juga menyesuaikan nilai batas waktu Anda baik di MySQL dan PHP.
Seberapa besar (ukuran file) file yang Anda impor dan apakah Anda dapat mengimpor file menggunakan klien baris perintah mysql alih-alih PHPMyAdmin?
sumber
Jika Anda menggunakan MAMP pada OS X, Anda harus mengubah
max_allowed_packet
nilai dalam templat untuk MySQL.Anda dapat menemukannya di: File> Edit template> MySQL my.cnf
Kemudian cari saja
max_allowed_packet
, ubah nilainya dan simpan.sumber
Saya memecahkan masalah saya dengan file /etc/mysql/my.cnf singkat ini:
sumber
[mysqld]
Alasan lain ini bisa terjadi adalah kehabisan memori. Periksa / var / log / pesan dan pastikan bahwa my.cnf Anda tidak diatur untuk menyebabkan mysqld mengalokasikan lebih banyak memori daripada yang dimiliki mesin Anda.
Proses mysqld Anda sebenarnya dapat dibunuh oleh kernel dan kemudian dimulai kembali oleh proses "safe_mysqld" tanpa Anda menyadarinya.
Gunakan top dan perhatikan alokasi memori saat sedang berjalan untuk melihat apa ruang kepala Anda.
buat cadangan my.cnf sebelum mengubahnya.
sumber
Saya mengalami kesalahan ini dan yang terkait lainnya, ketika saya mengimpor file SQL 16 GB. Bagi saya, mengedit my.ini dan mengatur yang berikut (berdasarkan beberapa posting berbeda) di bagian [mysqld]:
Jika Anda menjalankan Windows, buka panel kontrol, layanan, dan lihat detail untuk MySQL dan Anda akan melihat di mana my.ini berada. Kemudian setelah Anda mengedit dan menyimpan my.ini, restart layanan mysql (atau nyalakan kembali komputer).
Jika Anda menggunakan HeidiSQL, Anda juga dapat mengatur beberapa atau semua menggunakan itu.
sumber
Saya memperbarui "max_allowed_packet" ke 1024M, tetapi masih tidak berfungsi. Ternyata skrip penerapan saya sedang berjalan:
Pastikan untuk secara eksplisit menentukan angka yang lebih besar dari baris perintah jika Anda melakukannya dengan cara ini.
sumber
Jika data Anda termasuk
BLOB
data:Perhatikan bahwa impor data dari baris perintah tampaknya tersedak pada data BLOB, mengakibatkan kesalahan 'MySQL server telah hilang'.
Untuk menghindari ini, buat ulang mysqldump tetapi dengan
--hex-blob
bender:http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_hex-blob
yang akan menulis file data dengan nilai hex daripada biner di antara teks lainnya.
PhpMyAdmin juga memiliki opsi "Dump binary kolom dalam notasi heksadesimal (misalnya," abc "menjadi 0x616263)" yang berfungsi dengan baik.
Perhatikan bahwa ada bug lama (per Desember 2015) yang berarti
GEOM
kolom tidak dikonversi: Cadangkan tabel dengan kolom GEOMETRI menggunakan mysqldump? jadi menggunakan program seperti PhpMyAdmin tampaknya menjadi satu-satunya solusi (opsi yang disebutkan di atas tidak benar mengkonversi kolom GEOM).sumber
Jika butuh waktu lama untuk gagal, maka perbesar
wait_timeout
variabelnya.Jika gagal segera, perbesar
max_allowed_packet
variabel; itu masih tidak berfungsi, pastikan perintah itu SQL yang valid. Milik saya memiliki kutipan yang tidak terhapus yang mengacaukan semuanya.Juga, jika memungkinkan, pertimbangkan membatasi jumlah menyisipkan perintah SQL tunggal untuk, katakanlah, 1000. Anda dapat membuat skrip yang membuat beberapa pernyataan dari satu dengan memunculkan kembali bagian INSERT ... setiap n sisipan.
sumber
saya mendapat kesalahan yang sama .. untuk menyelesaikan ini buka saja file my.ini..di sini pada baris no 36 ubah nilai ukuran paket maksimum yang diijinkan yaitu. max_allowed_packet = 20M
sumber
Pastikan proses mysqld tidak restart karena manajer layanan seperti systemd.
Saya punya masalah ini dalam gelandangan dengan centos 7. Konfigurasi tweak tidak membantu. Ternyata itu adalah systemd yang membunuh layanan mysqld setiap kali ketika mengambil terlalu banyak memori.
sumber
Saya memiliki kesalahan yang sama hari ini ketika menduplikasi database (server MySQL telah hilang ...), tetapi ketika saya mencoba untuk me-restart mysql.server me-restart saya mendapat kesalahan
Inilah cara saya menyelesaikannya: Saya membuka Aplikasi / Utilitas / dan menjalankan Activity Monitor
kemudian bisa menyelesaikan masalah kesalahan dengan
sumber
Saya melakukan beberapa perhitungan besar yang melibatkan koneksi mysql agar tetap lama dan dengan data yang banyak. saya menghadapi "masalah pergi Mysql" ini. Jadi saya mencoba t mengoptimalkan query tetapi itu tidak membantu saya maka saya meningkatkan batas variabel mysql yang ditetapkan ke nilai yang lebih rendah secara default.
wait_timeout max_allowed_packet
Untuk membatasi apa yang cocok untuk Anda, itu harus menjadi Nomor Any * 1024 (Bytes). Anda dapat masuk ke terminal menggunakan perintah ' mysql -u username - p ' dan dapat memeriksa dan mengubah batas variabel ini.
sumber
Untuk hosting bersama GoDaddy
Pada akun hosting bersama GoDaddy, sulit untuk mengubah file PHP.ini dll. Namun, ada cara lain dan itu berfungsi dengan baik untuk saya. (Saya baru saja berhasil mengunggah file teks .sql 3,8Mb, berisi 3100 baris dan 145 cols. Menggunakan perintah IMPORT di phpMyAdmin, saya mendapatkan server MySQL yang ditakuti telah hilang. kesalahan, dan tidak ada informasi lebih lanjut.)
Saya menemukan bahwa Matt Butcher memiliki jawaban yang tepat. Seperti Matt, saya telah mencoba segala macam trik, dari mengekspor basis data MySQL dalam ukuran kecil, hingga menulis skrip yang memecah impor besar menjadi lebih kecil. Tapi inilah yang berhasil:
(1) CPANEL ---> FILES (grup) ---> CADANGAN
(2a) Di bawah judul
"Cadangan Sebagian" ... (2b) Di bawah "Unduh Cadangan Database MySQL"
(2c) Pilih basis data Anda dan unduh cadangan (langkah ini opsional, tetapi bijak)
(3a) Langsung ke kanan 2b, di bawah judul "Kembalikan Cadangan Database MySQL"
(3b) Pilih file impor .SQL dari drive lokal Anda
(3c) Kebahagiaan sejati akan menjadi milik Anda (segera ....) Saya butuh waktu sekitar 5 detik
Catatan:
a. Jika Anda tidak yakin cara membuat file impor .SQL, gunakan phpMyAdmin untuk mengekspor tabel dan memodifikasi struktur file itu.
SUMBER: Artikel Matt Butcher 2010
sumber
Jika peningkatan
max_allowed_packet
tidak membantu.Saya mendapatkan kesalahan yang sama seperti Anda ketika mengimpor
.sql
file ke database saya melalui Sequel Pro.Kesalahan masih berlanjut setelah menaikkan
max_allowed_packet
ke512M
jadi saya menjalankan impor di baris perintah sebagai gantinya dengan:Itu memberi kesalahan berikut:
Saya menemukan beberapa pertanyaan StackOverflow yang membantu:
Dalam kasus saya,
.sql
file saya sedikit korup atau semacamnya. Dump MySQL yang kita dapatkan datang dalam dua file zip yang harus digabung bersama dan kemudian dibuka ritsletingnya. Saya pikir unzipping awalnya terganggu, meninggalkan file dengan beberapa karakter aneh dan penyandian. Mendapatkan dump MySQL baru dan membuka ritsletingnya dengan benar bekerja untuk saya.Hanya ingin menambahkan ini di sini kalau-kalau orang lain yang meningkatkan
max_allowed_packet
variabel tidak membantu.sumber
Tidak ada solusi mengenai ukuran paket atau batas waktu yang membuat perbedaan bagi saya. Saya perlu menonaktifkan ssl
https://dev.mysql.com/doc/refman/5.7/en/encrypted-connections.html
sumber
Saya punya masalah yang sama dengan
Dalam file \ xampp \ mysql \ bin \ my.ini dari phpmyadmin kita hanya dapatkan
yang hanya untuk mysqldump -u root -p dbname. Saya menyelesaikan masalah saya dengan mengganti kode di atas dengan
sumber