mongodump导出MongoDB的app数据库仅生成空文件夹是什么原因?
mongodump执行后导出目录为空的排查方案
你可以按照以下优先级逐一排查问题:
- 端口配置不匹配
如果你修改过MongoDB默认监听端口(27017),即使本地mongo shell可以正常连接(通常是你执行mongo命令时隐式指定了自定义端口,或者配置了.mongorc.js默认参数),mongodump默认仍会尝试连接27017端口的实例。你可以在mongodump命令中显式指定端口验证:mongodump --db app --port <你的MongoDB实际端口> - 缺少身份认证参数
如果MongoDB实例开启了身份认证,即使你本地通过localhost例外规则可以免密登录mongo shell查看数据,mongodump仍可能因为缺少认证参数静默导出失败。补充认证参数即可:mongodump --db app -u <数据库用户名> -p <数据库密码> --authenticationDatabase admin - 版本不兼容
mongodump工具和MongoDB服务端的大版本差距过大时,会出现兼容问题导致导出失败。分别执行以下命令对比版本:- 查看mongodump版本:
mongodump --version - 查看MongoDB服务端版本:进入mongo shell后执行
db.version()
确保两者大版本一致即可。
- 查看mongodump版本:
- 文件系统权限不足
运行mongodump的操作系统用户,仅拥有dump目录的创建权限、没有文件写入权限时,也会出现该问题。可以切换到/tmp目录执行导出命令验证:cd /tmp && mongodump --db app - 磁盘空间不足
导出目录所在磁盘剩余空间小于待导出数据大小时,会导致写入失败。执行df -h查看磁盘剩余容量,清理空间后重试即可。
内容的提问来源于stack exchange,提问作者chilly_maximus
相关产品推荐
相关产品推荐

