Я установил mongodb и драйверы php на свой unix-сервер.
Мой вопрос: как узнать, запущен ли mongodb? Есть ли простой запрос командной строки для проверки статуса? Если я запустил его один раз из оболочки, он продолжит работу, если я выйду из оболочки (похоже, это не так). Как я могу сделать соединение mongodb постоянным и автоматически запускаться при перезагрузке сервера?
Я могу бегать:
-bash-3.2 $ su
Пароль:
[root @ xxx] # cd / var / lib
[root @ xxx] # ./mongodb-linux-i686-1.6.5/bin/mongod
./mongodb-linux-i686-1.6. 5 / bin / mongod --help для справки и параметров запуска
Среда, 23 февраля 08:06:54 Запуск MongoDB: pid = 7271 port = 27017 dbpath = / data / db / 32-bit** ПРИМЕЧАНИЕ: при использовании MongoDB 32 bit вы ограничены примерно 2 гигабайтами данных
** см. Http://blog.mongodb.org/post/137788967/32-bit-limitations** ВНИМАНИЕ: вы работаете в OpenVZ. Известно, что это сломано !!!
Среда, 23 февраля, 08:06:54, версия db v1.6.5, версия pdfile, версия 4.5,
среда, 23 февраля, 08:06:54, версия git: 0eb017e9b2828155a67c5612183337b89e12e291,
среда, 23 февраля, 08:06:54 sys info: Linux domU-12-31-39-01 -70-B4 2.6.21.7-2.fc8xen # 1 SMP, пятница,
15 февраля, 12:39:36 EST 2008 i686 BOOST_LIB_VERSION = 1_37,
среда, 23 февраля, 08:06:54 [initandlisten] ожидает подключения к порту 27017,
среда 23 февраля, 08: 06:54 [websvr] интерфейс веб-администратора прослушивает порт 28017
Если я открою отдельную оболочку, я могу подключиться к mongodb:
-bash-3.2 $ cd / var / lib
-bash-3.2 $ ./mongodb-linux-i686-1.6.5/bin/mongo
Версия оболочки MongoDB: 1.6.5
подключение к: test
db.foo.find ()
{" _id ": ObjectId (" 4d63d7d3eb95985ab19c8feb ")," a ": 1}
Однако, если я закрою начальную оболочку, я не смогу подключиться:
-bash-3.2 $ cd / var / lib
-bash-3.2 $ ./mongodb-linux-i686-1.6.5/bin/mongo
Версия оболочки MongoDB: 1.6.5
подключение к: test
среда 23 февраля 08:25:10 Ошибка : не удалось подключиться к серверу 127.0.0.1 (анон): 1154
исключение: сбой подключения
pgrep mongo
.Я нахожу:
Чтобы быть более последовательным. Возвращенное значение можно использовать для определения количества запущенных экземпляров mongod.
источник
Чтобы быстро проверить, запущен ли mongodb, этот быстрый трюк с nc сообщит вам об этом.
Приведенная выше команда предполагает, что вы запускаете ее на порту по умолчанию на localhost.
Для автоматического запуска вы можете посмотреть эту ветку .
источник
27017 open
или elseConnection refused
.это должно работать нормально ...
источник
Чтобы проверить текущий статус работы mongodb, используйте:
sudo service mongodb status
источник
Правильно, закрытие оболочки остановит MongoDB. Попробуйте использовать
--fork
аргумент командной строки для процесса mongod, который вместо этого запускает его как демон. Я не гуру Unix, но уверен, что должен быть способ заставить его автоматически запускаться при загрузке машины.например
Ознакомьтесь с полной документацией по запуску и остановке Mongo .
источник
[root@xxx lib]# ./mongodb-linux-i686-1.6.5/bin/mongod --fork --logpath /var/log/m ongodb.log --logappend all output going to: /var/log/mongodb.log forked process: 7518
но все же, когда я закрываю оболочку и открываю новую, я получаюConnect failed
&
, а теперь не могу найти processid.ps -e | grep mongod
Вы можете использовать команду ниже, чтобы проверить статус MongoDB, например:
sudo service MongoDB status
который отображает статус службы MongoDB, как показано на снимке экрана:источник
Вероятно, потому что я не выключил свой сервер разработки должным образом или по аналогичной причине. Чтобы исправить это, снимите блокировку и запустите сервер с помощью:
sudo rm /var/lib/mongodb/mongod.lock ; sudo start mongodb
источник
Я знаю, что это для php, но я пришел сюда в поисках решения для node. Использование монгоскина:
С другими драйверами вы можете попытаться установить соединение, и если это не удастся, вы знаете, что сервер mongo не работает. Mongoskin действительно нужно сделать какой-то вызов (например, ping), потому что он подключается лениво. Для php вы можете использовать метод попытки подключения. Сделайте сценарий!
PHP:
источник