问题
I am extremely new to MySQL and am running it on Windows. I am trying to restore a Database from a dumpfile in MySQL, but I get the following error:
$ >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'.
I have tried putting --binary-mode
in the ini file but it still gives the same error. What should I do? Please help.
UPDATE
As suggested by Nick in his comment I tried $ > mysql -u root -p -h localhost -D database --binary-mode -o < dump.sql
but it gave me the following ERROR at line 1: Unknown command '\☻'.
It is a 500 Mb dump file, and when I view its contents using gVIM, all I can see is expressions and data which is not comprehensible.
回答1:
Unzip the file, and then import again.
回答2:
I meet the same problem in windows restoring a dump file. My dump file was created with windows powershell and mysqldump like:
mysqldump db > dump.sql
The problem comes from the default encoding of powershell is UTF16. To look deeper into this, we can use "file" utility of GNU, and there exists a windows version here.
The output of my dump file is:
Little-endian UTF-16 Unicode text, with very long lines, with CRLF line terminators.
Then a conversion of coding system is needed, and there are various software can do this. For example in emacs,
M-x set-buffer-file-coding-system
then input required coding system such as utf-8.
And in the future, for a better mysqldump result, use:
mysqldump <dbname> -r <filename>
and then the output is handled by mysqldump
itself but not redirection of powershell.
reference: https://dba.stackexchange.com/questions/44721/error-while-restoring-a-database-from-an-sql-dump
回答3:
In Windows machine, please follows the preceding steps.
- Open file in notepad.
- Click on Save as
- Select Encoding type UTF-8.
Now source your db.
回答4:
Have you tried opening in notepad++ (or another editor) and converting/saving us to UTF-8?
See: notepad++ converting ansi encoded file to utf-8
Another option may be to use textwrangle to open and save the file as UTF-8: http://www.barebones.com/products/textwrangler/
回答5:
Extract your file with Tar archiving tool. you can use it in this way:
tar xf example.sql.gz
回答6:
May be your dump.sql is having garbage character in beginning of your file or there is a blank line in beginning.
回答7:
I had this error once, after running mysqldump
on Windows PowerShell like so:
mysqldump -u root p my_db --no-data --no-create-db --no-create-info --routines --triggers --skip-opt --set-gtid-purged=OFF > db_objects.sql
What I did was change it to this (pipe instead to Set-Content):
mysqldump -u root p my_db --no-data --no-create-db --no-create-info --routines --triggers --skip-opt --set-gtid-purged=OFF | Set-Content db_objects.sql
And the problem went away!
回答8:
If you don't have enough space or don't want to waste time in decompressing it, Try this command.
gunzip < compressed-sqlfile.gz | mysql -u root -p
Don't forget to replace compressed-sqlfile.gz with your compressed file name.
.gz restore will not work without command I provided above.
回答9:
Its must you file dump.sql problem.Use Sequel Pro check your file ecoding.It should be garbage characters in your dump.sql.
回答10:
I had the same problem, but found out that the dump file was actually a MSSQL Server backup, not MySQL.
Sometimes legacy backup files play tricks on us. Check your dump file.
On terminal window:
~$ cat mybackup.dmp
The result was:
TAPE??G?"5,^}???Microsoft SQL ServerSPAD^LSFMB8..... etc...
To stop processing the cat command:
CTRL + C
回答11:
The file you are trying to import is a zip file. Unzip the file and then try to import again.
回答12:
Your File should be only .sql extension, (.zip, .gz .rar) etc will not support. example: dump.sql
回答13:
You can use this to fix error:
zcat {address_sql_database(.tar.gz)} | mysql -u root -p {database_name} --binary-mode
来源:https://stackoverflow.com/questions/17158367/enable-binary-mode-while-restoring-a-database-from-an-sql-dump