mysql无法备份_关于mysqldump:无法将MYSQL备份还原到新数据库

我使用此线程的指南成功创建了myDb1数据库的mysqldump文件myDump.sql。 我还创建了第二个数据库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: '-'.

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

尝试运行file myDump.sql,它打印什么? (如果你在Linux上)

@ user4035我没有linux。 我使用windows powerShell。 尝试将myDump.sql作为mysql> SOURCE myDump.sql;运行,我得到ERROR: Failed to open file 'myDump.sql', error: 2

这个文件是文本文件吗? 用文本编辑器检查它。

@ user4035这是一个.sql文件,由运行mysqldump生成。

这可能是由编码系统引起的

我的转储文件是使用powershell中的重定向(">")生成的,我遇到了同样的问题。 输出重定向生成一个UTF-16 Little endian文件

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

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

然后保存文件并再次导入

可以使用GNU"file"实用程序检测文件的编码系统,它也可以在Windows中找到,可以在这里找到:http://gnuwin32.sourceforge.net/packages/file.htm

为了将来使用,可以使用更好的转储命令,例如:

mysqldump -r

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

用Sequel Pro打开就可以看到这一点

`í}kˉ]?Y?eWü??y???_%c?sè;?`ì?h?EE¤"8áü÷?>?qzWˉ:êmX0`2?yy??oμ?1êGw??+t{e£?gˉ??wˉ?o?/??1{?/?^}÷§oa?__???7_?'éáaà??{÷í?}?y÷?Oo/?o?L_?ùóG×??aí?×ó??ù?Wˉ/òíG??`

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值