无法导出MongoDB Atlas数据库,提示“并行导出0个集合”
解决mongodump导出0集合的问题
1. 修正URI格式错误
你的命令里URI存在格式问题:mongodb+srv://admin@.5x1p3.mongodb.net/中@后面多了一个多余的点,正确的Atlas集群URI应该是类似mongodb+srv://admin@cluster0.5x1p3.mongodb.net/的格式(cluster0需替换成你实际的集群名称)。URI格式错误会导致mongodump连接到不存在的集群/数据库,自然没有集合可导出。
2. 指定要导出的数据库
如果不指定具体数据库,mongodump会尝试导出当前用户有权限访问的所有数据库。如果admin用户没有权限访问目标数据库,或者目标数据库本身为空,就会出现dumping up to 0 collections的提示。
你可以通过两种方式指定数据库:
- 在URI末尾添加数据库名:
mongodump --uri mongodb+srv://admin@cluster0.5x1p3.mongodb.net/your-target-db -vvvv - 使用
--db参数:mongodump --uri mongodb+srv://admin@cluster0.5x1p3.mongodb.net/ --db your-target-db -vvvv
3. 验证用户权限
登录MongoDB Atlas控制台,检查admin用户的角色权限:
- 确保该用户拥有目标数据库的
read权限(或更高权限如readWrite) - 如果需要导出所有数据库,给用户分配
readAnyDatabase角色
4. 确认数据库存在数据
登录Atlas的数据库界面,检查目标数据库下是否确实存在集合和数据。如果数据库本身是空的,mongodump自然不会生成任何导出文件。
执行修正后的命令后,mongodump会默认在当前目录生成dump文件夹,里面包含导出的数据库文件。
内容的提问来源于stack exchange,提问作者Christian Bernal
相关产品推荐
相关产品推荐

