我正在尝试删除shell脚本中的mongo数据库。服务器要求使用密码进行身份验证。当我在命令行中输入以下内容时:
mongo -u mun -p 'themongopassword'
我能够连接到数据库,然后在运行以下命令时:
use dbname
db.dropDatabase()
数据库已成功删除。但是,我想执行以下操作:
mongo -u mun -p 'themongopassword' --eval 'db.dropDatabase()' sigma
我得到以下输出:
MongoDB shell version v4.2.6
connecting to: mongodb://127.0.0.1:27017/sigma?compressors=disabled&gssapiServiceName=mongodb
2020-05-06T13:13:53.419+0300 E QUERY [js] Error: Authentication failed. :
connect@src/mongo/shell/mongo.js:341:17
@(connect):2:6
2020-05-06T13:13:53.420+0300 F - [main] exception: connect failed
2020-05-06T13:13:53.420+0300 E - [main] exiting with code 1
像这样删除eval选项:
mongo -u mun -p 'themongopassword' sigma
还会导致具有相同输出的身份验证失败。
您是否尝试过此方法:
mongo <dbname> -u mun -p 'themongopassword' --eval "db.dropDatabase()"
如果您想获得可读的结果,请尝试以下操作:
mongo <dbname> -u mun -p 'themongopassword' --eval "printjson(db.dropDatabase())"