Saya mencoba mengimpor file dump MySQL.
File itu dibuat di server Linux, saya mencoba mengimpor di windows
Saya masuk ke baris perintah dan berlari:
SOURCE c:/dump.sql
Tapi ini tampaknya telah menimbulkan beberapa masalah set karakter (khusus dengan kutipan cerdas dan tanda baca non standar lainnya).
Disarankan kepada saya bahwa saya menjalankan:
mysql -u username -d dbase < c:\dump.sql
Ketika saya mencoba ini saya mendapatkan kesalahan
ERROR 2006 (HY000) at line 149351: MySQL server has gone away
Sedikit googling menyarankan bahwa ini ada hubungannya dengan sakelar max_allowed_packet tapi saya sudah mencoba ini dan tidak berhasil. Adakah yang tahu apa ini?
Jika ada yang punya saran tentang masalah set karakter yang akan membantu juga.
Jawaban:
Insting pertama saya setelah membaca pesan kesalahan dalam judul pertanyaan adalah untuk menyarankan peningkatan max_allowed_packet. Anda menyebutkan bahwa Anda mencoba "saklar itu" dan itu tidak berhasil. Bisakah Anda mengonfirmasi bahwa Anda telah memodifikasi file konfigurasi server dengan benar? Ungkapan Anda membuatnya terdengar seperti Anda telah mencoba menggunakannya sebagai saklar baris perintah pada baris perintah klien mysql.exe, yang tidak akan menyebabkan server mengubah perilaku.
Jadi, singkatnya, apa yang harus Anda coba lakukan adalah mencari dan mengedit file my.cnf yang saat ini digunakan server Anda. Di
[mysqld]
bagian ubah pengaturan max_allowed_packet ke sesuatu sepertiJangan lupa untuk me-restart server setelah mengubah konfigurasi.
Saya telah menggunakan 32M (nilai yang sangat besar) sebagai contoh. Karena kueri Anda sepertinya sangat bagus, Anda harus mencoba nilai ini (atau mungkin bahkan 64 juta jika Anda memiliki cukup RAM) untuk melihat apakah itu berfungsi.
Pilihan lain adalah meninggalkan server apa adanya dan mengubah perilaku klien yang digunakan untuk menghasilkan SQL dump. Katakan untuk membatasi ukuran kueri individual hingga di bawah 1 MB - yang juga harus melakukan trik.
Untuk detail lebih lanjut, lihat B.1.2.10. Paket terlalu besar dalam manual MySQL.
sumber
Di MySQL 5.7.24, itu karena konfigurasi lama dari MySQL 5.6
Opsi di bawah ini wajib jika versi SQL sama 5.7.5 atau lebih tinggi.
sql_mode=TRADITIONAL
Juga ada dua parameter max_allowed_packet di /etc/my.cnf, yang lainnya adalah untuk mysqldump. Harap perhatikan hal yang sama.
max_allowed_packet = <1G>
Instalasi saya di CentOS7.
sumber
Apakah Anda dapat mengakses contoh MySQL di server windows dari kotak linux?
Jika demikian, dapatkah Anda menjalankan perintah pada kotak linux, dengan saklar -h untuk terhubung ke server pada kotak windows?
Ini dapat menyelesaikan masalah rangkaian karakter Anda , karena Anda menggunakan klien Linux pada kotak asli untuk melakukan impor. (hanya menebak)
sumber
Apa kata log MySQL?
Kadang-kadang kesalahan ini dilaporkan pada klien jika ada kesalahan yang tidak dapat diperbaiki pada server. Ini bisa menjadi indikator kerusakan pada disk dari tabel database.
sumber
Apakah akun Anda memiliki kata sandi? Mungkin Anda perlu menambahkan -p switch:
sumber