MongoDB容器连接正常但mongoimport/mongoexport无法运行问题排查
问题
能通过mongo mongodb://root:example@172.19.0.7:27017/opal_data?authSource=admin正常连接Docker容器内的MongoDB(服务器版本6.0.10),但本地mongo shell版本为3.6.8,执行以下操作时异常:
- 执行
mongoexport --collection=652923b6ba96b245eae830e1_variable --uri=mongodb://root:example@172.19.0.7:27017/opal_data?authSource=admin --out=json-ex.json无限等待 - 执行
mongoimport --collection 65290895ba96b245eae82fb4_variable --file ~/Documents/OPAL_SCRIPTS/test2.json --uri mongodb://root:example@172.19.0.7:27017/opal_data?authSource=admin --jsonArray始终显示上传0B
已确认集合存在、JSON文件有效,且可通过Python读取该集合数据。
原因与解决办法
核心问题:工具版本和服务器版本不兼容
本地的mongoexport/mongoimport是3.6.8版本,而MongoDB服务器是6.0.10版本,跨了多个大版本,协议、命令逻辑都有差异,3.x的老工具没法和6.x的服务器正确交互,导致要么卡住没响应,要么无法正确解析导入命令。可行解决方式
- 升级本地工具版本:把本地的mongo shell及配套的mongoexport/mongoimport升级到6.x系列(和服务器版本6.0.10一致或接近最好),确保工具和服务器的通信协议匹配。
- 在容器内执行命令:直接进入MongoDB容器,用容器里自带的同版本工具操作,避免跨版本问题。示例命令:
# 进入MongoDB容器 docker exec -it <你的MongoDB容器ID/名称> bash # 执行导出 mongoexport --collection=652923b6ba96b245eae830e1_variable --uri=mongodb://root:example@localhost:27017/opal_data?authSource=admin --out=json-ex.json # 把容器内的导出文件复制到本地 docker cp <容器ID/名称>:json-ex.json ./json-ex.json - 用可视化工具替代:临时操作的话,可以用适配6.x服务器的MongoDB Compass,通过界面完成数据导入导出,避开命令行工具的版本问题。
内容的提问来源于stack exchange,提问作者Moopsish
相关产品推荐
相关产品推荐

