导入mysql文件提示“ASCII '\0' appeared in the statement”

在windows服务器上导入mysql文件时,出现以下报错:
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: '?-'.

后来百度了一下,发现这样一个回答:
The reference to  --binary-mode  (introduced in MySQL 5.6.3) is probably a distraction.

It doesn't sound like you're dealing with a mysqldump output file, there. Try the file utility.

shell> file dumpfile.sql
dumpfile.sql: ASCII text 

If you don't get the ASCII text response, you're dealing with either something that isn't a dump file from mysqldump at all, or you're dealing with something that's been compressed (with gzip or bzip2, for example), which you'd need to uncompress before piping it into mysql.
大意是说,错误信息里的--binary-mode极具迷惑性。事实上,这并不意味着你的 sql文件里包含ASCII字符。可以先通过file命令查看该文件的字符类型。

于是将该sql文件上传至Linux服务器上,执行了一下file:
[root@localhost ~]# file dafanshu_db.sql 
dafanshu_db.sql: Little-endian UTF-16 Unicode text, with very long lines, with CRLF line terminators
结果很明显,这里面并没有什么ASCII字符,所以即使将mysql设置成--binary-mode,也无济于事,是文件格式的问题。

后来无意中发现,用more查看这个文件,无法正常显示任何内容,用vi却可以。这更加说明,这个sql文件绝对不是普通的文本文件。

最后想起,这个sql文件是在powershell里导出来的。于是尝试在cmd下重新导一次,然后再导入,就正常了。这坑爹的powershell。。。

  • 16
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xosg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值