mongodb脚本从windows上传到linux无法执行

时间:2020-12-23 11:33:23

一:问题描述

这几次执行mongodb初始化脚本,发现一个问题:

将windows下的脚本上传到Linux下后,执行时,会报错。

如:

mongo -u root -p mongo123 admin --port 8000 < initdata-bmis.sql > initdata-bmis.log

 initdata-bmis.log文件里有很多错误:

SyntaxError: Unexpected token ILLEGAL

但是直接复制粘贴脚本内容在命令行里执行却不报错。或者将内容复制粘贴到Linux下新建的文件里,执行也不报错。

且该脚本确定没有语法错误。


二:出错原因

格式问题,windows和linux/unix的换行和空行符是不同的。


三:解决办法

方法一:

在notepad++中编辑时虽然是以utf8格式编码,但是还有个地方是需要转码的,windows和linux/unix的换行和空行符是不同的,所以在windows下编辑的脚本放到linux上就运行不了了,后查到在notepad++中可以进行转码。
mongodb脚本从windows上传到linux无法执行

方法二:

在Linux上安装dos2unix,然后进行转码

 yum install -y dos2unix

dos2unix initdata-bmis.sql

再次执行就不报错了:

mongo -u root -p mongo123 admin --port 8000 < initdata-bmis.sql > initdata-bmis.log