无法将MYSQL备份还原到新数据库

oke*_*_on 2 mysql mysqldump database-backups

我使用线程的指南成功创建了一个数据库mysqldump文件.我还创建了第二个数据库,导航到包含并尝试将其恢复到新数据库但失败的目录,我尝试了两种方法:myDump.sqlmyDb1myDb2myDump.sqlmyDb2

> mysql -u root -p myDb2 < myDump.sql;
> -- entered password
Run Code Online (Sandbox Code Playgroud)

和:

> mysql -u root -p
mysql> -- entered password
mysql> USE myDb2;
mysql> SOURCE myDump.sql;
Run Code Online (Sandbox Code Playgroud)

两者都有相同的错误消息:

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: ' ?-'.
Run Code Online (Sandbox Code Playgroud)

我还想知道是否需要使用与旧数据库相同的数据库名称.我尝试使用不同的名称,但同样的结果错误.

cda*_*int 5

这可能是由编码系统引起的.
我的转储文件是使用powershell中的重定向(">")生成的,我遇到了同样的问题.输出重定向生成一个带有UTF-16 Little endian的文件.

但是,这可以通过将dumpfile转换为utf-8来解决.这可以在emacs中完成:

Mx set-buffer-file-coding-system

然后保存文件并再次导入.

可以使用GNU"file"实用程序检测文件的编码系统,它也可以在Windows中找到,可以在这里找到:http ://gnuwin32.sourceforge.net/packages/file.htm
供将来使用,更好的转储命令如下:

mysqldump <dbname> -r <文件名>