Mongo shell输入任意字符串按下回车后内容重复问题如何解决
故障原因
- Mongo shell回显配置开启:Mongo shell内置
echo配置项,默认值为false,如果该配置被手动设置为true,或者启动shell时携带了--echo参数,就会将用户输入的每一条命令原样回显一次,也就是你看到的命令重复输出的现象。 - 终端TTY配置异常:如果你是通过SSH远程连接服务器后使用Mongo shell,可能是SSH伪终端分配异常导致本地回显重复;如果是本地使用,可能是终端工具的回显参数被意外修改,除了Mongo shell外其他交互式命令也可能出现相同问题。
- 旧版本Mongo shell bug:4.0之前的部分老旧版本Mongo shell存在交互回显逻辑缺陷,在副本集模式下使用时偶发命令重复回显的问题。
修复步骤
- 临时验证并修复Mongo shell配置
进入Mongo shell后执行set('echo', false),再输入任意命令测试,若重复输出的现象消失,说明是配置问题。如需永久生效,在当前操作系统用户的家目录下创建.mongorc.js文件,写入以下内容即可,下次启动Mongo shell会自动加载该配置:
set("echo", false)
- 修复终端/SSH配置
如果执行上面的操作后问题仍然存在,按场景修复:
- 远程SSH场景:连接服务器时添加
-t参数强制分配伪终端,示例:ssh -t root@192.168.1.100 - 本地终端场景:在终端中执行
stty sane重置终端参数,再启动Mongo shell测试即可。
- 升级Mongo shell版本
如果上述方案都无效,卸载当前旧版本Mongo shell,安装对应大版本的最新稳定版,或是直接升级到官方新的mongosh(MongoDB 6.0及以后版本默认的交互shell)即可彻底解决版本bug导致的回显问题。
内容的提问来源于stack exchange,提问作者Santosh
相关产品推荐
相关产品推荐

