【发布时间】:2014-10-25 02:58:51
【问题描述】:
我有一个失败的 bash 脚本。经检查,故障原因是MongoDB重启后立即访问。
例如,运行:
mongo --eval "db.version()"
给出预期的输出:
MongoDB shell 版本:2.4.9
连接到:测试
2.4.9
运行时:
service mongodb restart; mongo --eval "db.version()"
产生以下输出,强调我的:
mongodb 停止/等待
mongodb 启动/运行,进程 1466
MongoDB shell 版本:2.4.9
连接到:测试
10 月 25 日星期六 02:52:29.736 错误:无法在 src/mongo/shell/mongo.js:145 连接到服务器 127.0.0.1:27017
异常:连接失败
因为服务器还没有准备好。
在执行 bash 脚本期间等待 MongoDB 实际就绪的正确方法是什么?
service mongodb status不是解决方案,因为它报告的是服务的状态,而不是数据库本身。重复执行
nc -z localhost 27017直到其退出代码变为 0 将起作用,但我不确定是否没有缺点(以某种方式运行无限循环?)
【问题讨论】:
标签: javascript bash mongodb