Saya sangat baru di MySQL dan menjalankannya di Windows. Saya mencoba memulihkan Database dari dumpfile di MySQL, tetapi saya mendapatkan kesalahan berikut:
$ >mysql -u root -p -h localhost -D database -o < dump.sql
ERROR: ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in non-interactive mode. Set --binary-mode to 1 if ASCII '\0' is expected. Query: 'SQLite format 3'.
Saya mencoba $ > mysql -u root -p -h localhost -D database --binary-mode -o < dump.sql
tetapi ini memberi saya yang berikut ERROR at line 1: Unknown command '\☻'.
Ini adalah file dump 500 Mb, dan ketika saya melihat isinya menggunakan gVIM, yang bisa saya lihat hanyalah ekspresi dan data yang tidak dapat dipahami. Juga ketika saya mencoba untuk menyalin konten dari file yang akan dikirim di sini, semua yang dapat saya salin adalah: SQLite format 3
Jenis ini sepertinya aneh.
.sql
file dengan karakter dan penyandian yang aneh. Upaya kedua bekerja dengan baik.Jawaban:
Referensi ke
--binary-mode
(diperkenalkan di MySQL 5.6.3) mungkin merupakan gangguan.Tidak terdengar seperti Anda berurusan dengan file output mysqldump, di sana. Coba
file
utilitasnya.Jika Anda tidak mendapatkan
ASCII text
respons, Anda berurusan dengan sesuatu yang bukan file dumpmysqldump
sama sekali, atau Anda berurusan dengan sesuatu yang telah dikompresi (dengan gzip atau bzip2, misalnya), yang Anda Anda harus membuka kompresi sebelum memasukkannya ke dalam pipamysql
.Jika Anda melihat
SQLite 3.x database
maka Anda pasti memiliki jawaban Anda ... itu adalah database SQLite mentah, bukan file dump MySQL.Memang, beberapa byte pertama dari database SQLite adalah sebagai berikut:
Perhatikan bahwa oktet ke-16 di sini adalah 0x00, menjelaskan
ERROR: ASCII '\0' appeared in the statement...
pesan dalam kasus ini. Saran yang--binary-mode
tepat adalah alarm palsu.Pengguna Windows: utilitas 'file' adalah alat dari Unix, tetapi versi Windows dapat ditemukan di sini .
sumber
file MySQL.sql
kembaliUTF-8 Unicode text, with very long lines
. Ada ide?less -S MySQL.sql
. Apa yang kamu lihat? Apakah ini terlihat seperti file dump MySQL? Mereka sebagian besar dapat dibaca manusia. (Gunakanq
untuk keluar.)-- MySQL dump 10.13 Distrib 5.7.22, for Linux (x86_64)
. Dan bergerak turun melalui spasi menunjukkan instruksi khas MySQL. Namun, jika saya terus turun itu membeku di jalur tertentu. Baris yang sama yang muncul di pesan kesalahan. Saya melihat lebih jauh dan menemukan bahwa dump MySQL belum di-unzip dengan benar pertama kali. Tidak yakin apa yang salah, tetapi ketika saya unzip kembali, itu berfungsi dengan baik. Saya menambahkan jawaban tentang ini di sini untuk orang lain: stackoverflow.com/a/51432853/293280 Terima kasih banyak atas bantuan Anda dan balasan cepat. 👍Windows
Buat file dump Anda dengan perintah ini
Menggunakan:
sumber
Saya punya kesalahan ini sekali, setelah berjalan
mysqldump
di Windows PowerShell seperti:Apa yang saya lakukan adalah mengubahnya menjadi ini (sebagai gantinya menjadi Set-Content):
Dan masalahnya hilang!
sumber
Saya juga di PowerShell
Saya mengalami masalah ini ketika saya menggunakan PowerShell untuk memanggil mysqldump dan > untuk menyalurkan output ke file. PowerShell menggunakan penyandian yang salah ketika membuat file dan saya disajikan dengan kesalahan yang sama ketika saya mencoba untuk mengimpor file menggunakan mysql .. <diekspor-file.sql
Saya menemukan bahwa pengaturan penyandian default ke UTF8 di sesi PowerShell menyelesaikan masalah ini.
Resolusi saya - Diuji PowerShell 5.1:
Contoh: Bagaimana saya menghasilkan ekspor (disederhanakan) :
Catatan: Ditemukan ini tidak berfungsi di PowerShell 4.0
Lingkungan pengembangan saya berjalan 5.1, tetapi prod di 4.0 dan perbaikan awal saya tidak bekerja di versi PowerShell yang lebih lama.
Perlu digunakan
| Set-Content -Encoding UTF8 $fileName
Ini sudah disarankan oleh Ifedi
sumber
Sudahkah Anda mencoba membuka di notepad ++ (atau editor lain) dan mengonversi / menyimpan kami ke UTF-8?
Lihat: /programming/7256049/notepad-converting-ansi-encoded-file-to-utf-8
Opsi lain mungkin menggunakan textwrangle untuk membuka dan menyimpan file sebagai UTF-8: http://www.barebones.com/products/textwrangler/
sumber
Seseorang mengirimi saya gtar terkompresi. Bahkan tidak terlalu akrab dengan gtar, tetapi ini adalah format kompresi lainnya.
Namun, saya bisa mendekompresnya sama seperti biasa:
Dan kemudian saya bisa melakukan impor:
sumber
Solusi: Ekstrak file cadangan dan kemudian kembalikan dump sql yang diekstraksi ini.
Contoh:
Cadangan telah diambil sebagai file dump.sql.gz dan mengekstraknya menggunakan gunzip cmd sebagai berikut,
Dan KEMBALIKAN file dump.sql diekstraksi.
Ref: Tentang mode biner MySQL dan interaktif.
http://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html#option_mysql_binary-mode
Ini bekerja untuk saya dan siap !!
sumber
Dalam kasus saya, file tersebut rusak. Basis data dikompresi dengan ekstensi
.bz2
tetapi sebenarnya a.tar.bz2
.Mendekomposisi menggunakan
bzip2 -dk
tidak menghasilkan kesalahan dan menghasilkan file. Menggunakan perintahfile
pada output filebzip2 compressed data, block size = 900k
sehingga tidak terlihat salah untuk menggunakannya.Saya harus menggunakan
tar -xf myfile.bz2
sumber