MongoDB v4.0.4 调用passwordPrompt()提示未定义错误如何解决?
问题产生原因
passwordPrompt() 是MongoDB 4.2及以上版本的官方mongo shell才内置提供的辅助方法,你当前使用的v4.0.4版本shell尚未集成该方法,因此执行时会抛出ReferenceError: passwordPrompt is not defined的未定义引用错误。
解决方案
- 方案一:升级mongo shell到4.2或更高版本
4.2+版本的mongo shell向下兼容v4.0版本的MongoDB服务端,升级完成后即可直接使用官方内置的passwordPrompt()方法实现隐式密码输入。 - 方案二:继续使用v4.0版本shell,可选择两种替代方案实现隐式密码输入
- 连接数据库时指定认证参数,触发shell自带的密码提示
执行连接命令时加入用户名和认证库参数,shell会自动弹出隐式密码输入提示,无需在交互界面输入明文密码:
mongo -u "你的用户名" --authenticationDatabase "你的认证库名(默认通常为admin)"- 交互模式下自定义
passwordPrompt方法
在mongo shell交互界面先执行以下代码自定义方法,之后就可以正常调用db.auth("username",passwordPrompt())完成隐式认证:
passwordPrompt = function() { return readPassword("请输入密码:"); }; - 连接数据库时指定认证参数,触发shell自带的密码提示
内容的提问来源于stack exchange,提问作者Shivabharathi Ponnuvelu
相关产品推荐
相关产品推荐

