分享更有价值
被信任是一种快乐

MYSQL SOURCE报错ERROR: ASCII怎么办

文章页正文上

这篇文章将为大家详细讲解有关MYSQL SOURCE报错ERROR: ASCII怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
由 ASCII ‘’ 引起的MYSQL SOURCE错误

有一个朋友给出一个错误:
source test.sql
ERROR:
ASCII ‘’ appeared in the statement, but this is not allowed unless option
–binary-mode is enabled and mysql is run in non免费主机域名-interactive mode. Set –bin
ary-mode to 1 if ASCII ‘’ is expected. Query: ”.

以前没见过这个错误,于是仔细看了一下。先根据报错查看–binary-mode的意思:
–binary-mode By default, ASCII ‘’ is disallowed and ‘rn’ is
translated to ‘n’. This switch turns off both features,
and also turns off parsing of all clientcommands except
C and DELIMITER, in non-interactive mode (for input
piped to mysql or loaded using the ‘source’ command).
This is necessary when processing output from mysqlbinlog
that may contain blobs.

意思就是ASCII ‘’ 是不允许的,除非在binary mode下,为什么会不允许呢?
原因在于一个存文本模式的sql脚本不可能存在’’,’’对应ASCII的00,NUL,
我们知道在纯文本模式下,任何字符都对应自己的编码,即使是空格、换行、回车、制表符等
,00 NUL只会在二进制模式的文件中才有,当使用非交互模式的时候,比如
在mysqlbinlog|mysql -u root -p 时候是用会关闭,但是我测试了一下也不行
不管使用pipe管道还是重定向都不行:
[root@testmy ~]# cat test.sql|/mysqldata/mysql5.7/bin/mysql –socket=/mysqldata/mysql5.7/mysqld3307.sock
ERROR: ASCII ‘’ 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 ‘’ is expected. Query: ”.
[root@testmy ~]# /mysqldata/mysql5.7/bin/mysql –socket=/mysqldata/mysql5.7/mysqld3307.sock 也许这种方式只有在导入ROW格式的binlog才会用到吧。

下面是重现方式,简单的代码:
#include
#include

int main(void)
{
FILE* fd;
char a=’’;

if(!(fd = fopen(“test.sql”,”a+”)))
{
perror(“error:”);
exit(1);
}
fputc(a,fd);
fputc(‘n’,fd);
fclose(fd);
}

向test.sql写入一个即可,就可以重现了。下面是一个ASCII部分控制字符的截图

关于“MYSQL SOURCE报错ERROR: ASCII怎么办”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

相关推荐: 分析数据库都做了哪些操作

这篇文章主要介绍“分析数据库都做了哪些操作”,在日常操作中,相信很多人在分析数据库都做了哪些操作问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”分析数据库都做了哪些操作”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!由于不将数据…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册