执行mongoimport无法向MongoDB插入数据,请求技术排查协助
解决mongoimport导入停滞、进度始终为0%的问题
我之前也碰到过一模一样的情况,给你梳理几个最可能的排查方向,一个个试下来应该能解决:
先确认文件路径和存在性
首先检查你执行命令的当前目录里,是不是真的有primer-dataset.json这个文件。Linux/macOS可以用ls、Windows用dir命令确认。如果文件在别的文件夹,一定要写绝对路径,比如:mongoimport --db test --collection restaurants --drop --file /Users/xxx/Downloads/primer-dataset.json检查mongod的连接配置
如果你的mongod没有监听默认的127.0.0.1:27017,或者开启了用户认证,必须在命令里补上连接参数:# 指定自定义的host和端口 mongoimport --host 127.0.0.1 --port 27018 --db test --collection restaurants --drop --file primer-dataset.json # 开启认证的情况 mongoimport --db test --collection restaurants --drop --file primer-dataset.json --username your_username --password your_password验证文件权限与格式
- 权限问题:确保当前用户能读取这个JSON文件,Linux/macOS下可以执行
chmod +r primer-dataset.json赋予读权限; - 格式问题:mongoimport默认要求每个JSON文档单独占一行(也就是JSON Lines格式),如果你的文件是包裹在数组里的(比如
[{}, {}, ...]这种结构),必须加上--jsonArray参数才能正确解析:mongoimport --db test --collection restaurants --drop --file primer-dataset.json --jsonArray
- 权限问题:确保当前用户能读取这个JSON文件,Linux/macOS下可以执行
确认mongod实例是否正常运行
- 先检查mongod进程有没有在跑:Linux/macOS用
ps aux | grep mongod,Windows看任务管理器里的mongod进程; - 查看mongod的日志文件(比如Linux下通常在
/var/log/mongodb/mongod.log),看看有没有连接失败、锁冲突或者资源不足的报错信息,这些都可能导致导入停滞。
- 先检查mongod进程有没有在跑:Linux/macOS用
排查系统资源是否充足
虽然你这个文件只有11.3MB不算超大,但如果系统内存被其他进程占满,mongod也可能卡住。可以用free -m(Linux)或者任务管理器看看内存使用情况,关掉一些占用资源的进程再重试。
内容的提问来源于stack exchange,提问作者Vasista
相关产品推荐
相关产品推荐

