在Heroku上使用mLab导出MongoDB集合至CSV失败求助
解决mLab导出CSV时的bash解析错误问题
我之前折腾mLab导出数据的时候也踩过类似的坑,结合你遇到的“bash -! not recognised”错误,大概率是命令里的特殊字符被终端误解析了,咱们一步步来解决:
先补全必填的字段参数:你用的官方命令里
-f后面是空的,这是必须指定要导出的字段列表的(比如-f email,name,createdAt),空着的话不仅mongoexport会报错,还可能让bash误读命令结构,抛出奇怪的提示。处理密码里的特殊字符:如果你的密码包含
!、$、@这类bash会识别为特殊命令的字符,直接写在命令里会被终端当成命令解析,这就是你看到“! not recognised”的原因。解决办法是用单引号把密码括起来,比如-p 'myPass!123$',这样bash就会把整个字符串当成密码,不会解析里面的特殊字符。确认命令参数的正确格式:用户名和密码要紧跟在
-u和-p后面,不要留空。给你一个完整的正确命令示例(替换成你的实际参数):
mongoexport -h ds049180.mlab.com:49180 -d heroku_appXXXXXX -c users -u your_username -p 'your_secure!pass$' -o users.csv --csv -f email,name,age
- 更安全的密码输入方式:如果不想在命令里明文写密码,也可以只写
-p不跟密码,执行命令后终端会弹出密码输入提示,直接输入回车即可,这样完全避免了特殊字符的解析问题:
mongoexport -h ds049180.mlab.com:49180 -d heroku_appXXXXXX -c users -u your_username -p -o users.csv --csv -f email,name,age
- 检查mongoexport是否可用:如果上面的方法都不行,先在终端执行
mongoexport --version,确认这个工具已经安装并且在系统PATH里。如果提示找不到命令,需要先安装MongoDB的工具包(不需要安装完整的MongoDB服务,只需要单独的工具集就行)。
内容的提问来源于stack exchange,提问作者Elfordy
相关产品推荐
相关产品推荐

