无法将MYSQL备份恢复到新数据库。

11 浏览
0 Comments

无法将MYSQL备份恢复到新数据库。

我按照这个线程的指南,成功地创建了一个名为myDump.sqlmysqldump文件,备份了一个名为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日
0
0 Comments

检查 myDump.sql 文件,可能是文件中的编码错误导致的。这些垃圾字符引起了这个问题。删除这些垃圾字符可以解决这个问题。

使用 Sequel Pro 打开显示

`í}k¯]ÇÝçðWÜ?øy«««_%c�sè;¶`Ìô hãEE¤"8Áü÷ô>ûqzW¯:êmX0`²¸yyëÔºµë¹êGw?û+þ{ð£»g¯ÿçw¯¿ºû/ß¾¹{ö/ï^}÷§oªô__ûöË7_ß'éÁªà¿¿{÷ÍÇ}ôý÷ßOo/ãoßL_¼ùÓG×?ûâÍ«×Óß¼ùãW¯/òÍGË?`

0
0 Comments

这可能是由于编码系统导致的。
我的转储文件是在PowerShell中使用重定向(“>”)生成的,我遇到了同样的问题。输出重定向生成了一个UTF-16小端文件。

然而,可以通过将转储文件转换为utf-8来解决。这可以在emacs中完成:

M-x set-buffer-file-coding-system

然后保存文件并重新导入。

使用GNU“file”实用程序可以检测文件的编码系统,并且在Windows中也可用,并且可以在此处找到:http://gnuwin32.sourceforge.net/packages/file.htm
为了将来使用,最好的转储命令如下:

mysqldump -r

0