无法将MYSQL备份恢复到新数据库。
无法将MYSQL备份恢复到新数据库。
我按照这个线程的指南,成功地创建了一个名为myDump.sql
的mysqldump
文件,备份了一个名为myDb1
的数据库。同时,我创建了第二个数据库myDb2
,并尝试将myDump.sql
恢复到新数据库myDb2
中,但失败了。我尝试了两种方法:
> mysql -u root -p myDb2 < myDump.sql; > -- entered password
和:
> mysql -u root -p mysql> -- entered password mysql> USE myDb2; mysql> SOURCE myDump.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: ' ■-'.
我还想知道,在新的数据库中是否需要使用与旧数据库相同的数据库名称。我尝试了不同的和相同的名称,但结果都是出现了错误提示。
admin 更改状态以发布 2023年5月22日
这可能是由于编码系统导致的。
我的转储文件是在PowerShell中使用重定向(“>”)生成的,我遇到了同样的问题。输出重定向生成了一个UTF-16小端文件。
然而,可以通过将转储文件转换为utf-8来解决。这可以在emacs中完成:
M-x set-buffer-file-coding-system
然后保存文件并重新导入。
使用GNU“file”实用程序可以检测文件的编码系统,并且在Windows中也可用,并且可以在此处找到:http://gnuwin32.sourceforge.net/packages/file.htm
为了将来使用,最好的转储命令如下:
mysqldump