Недавно я обновил свой apt-get, и теперь mongod работает некорректно.
Сейчас мне нужно пройти через: mongod --dbpath /var/lib/mongodb
и оставьте терминал открытым, чтобы он работал.
Если я просто запустил mongod
root@ip-XXX-XX-XX-XX:/home/ubuntu# mongod
mongod --help for help and startup options
Sun Jun 22 21:48:19.403 [initandlisten] MongoDB starting : pid=2033 port=27017 dbpath=/data/db/ 64-bit host=ip-XXX-XX-XX-XX
Sun Jun 22 21:48:19.403 [initandlisten] db version v2.4.10
Sun Jun 22 21:48:19.403 [initandlisten] git version: e3d78955d181e475345ebd60053a4738a4c5268a
Sun Jun 22 21:48:19.403 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Sun Jun 22 21:48:19.403 [initandlisten] allocator: tcmalloc
Sun Jun 22 21:48:19.403 [initandlisten] options: {}
Sun Jun 22 21:48:19.404 [initandlisten] exception in initAndListen: 10296
*********************************************************************
ERROR: dbpath (/data/db/) does not exist.
Create this directory or give existing directory in --dbpath.
See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************
, terminating
Sun Jun 22 21:48:19.404 dbexit:
Sun Jun 22 21:48:19.404 [initandlisten] shutdown: going to close listening sockets...
Sun Jun 22 21:48:19.404 [initandlisten] shutdown: going to flush diaglog...
Sun Jun 22 21:48:19.404 [initandlisten] shutdown: going to close sockets...
Sun Jun 22 21:48:19.404 [initandlisten] shutdown: waiting for fs preallocator...
Sun Jun 22 21:48:19.404 [initandlisten] shutdown: lock for final commit...
Sun Jun 22 21:48:19.404 [initandlisten] shutdown: final commit...
Sun Jun 22 21:48:19.404 [initandlisten] shutdown: closing all files...
Sun Jun 22 21:48:19.405 [initandlisten] closeAllFiles() finished
Sun Jun 22 21:48:19.405 dbexit: really exiting now
root@ip-XXX-XX-XX-XX:/home/ubuntu#
Я предполагаю, что использует другой файл конфигурации, но я понятия не имею, какой файл конфигурации он использует. Я хотел бы, чтобы mongo запускался автоматически и с использованием правильной конфигурации.
Также стоит отметить, если я это сделаю:
sudo service mongodb start
Я получил: mongodb start/running, process 2044
но любая страница с ошибками mongo с:
Failed to connect to: 127.0.0.1:27017: Connection refused.
Ошибка при запуске просто mongod
потому что путь к базе данных по умолчанию /data/db
(т.е. это не другой файл конфигурации, а то, что вы получите, если ничего не укажете). Вы, кажется, бежите mongod
как root, что в целом является плохой идеей и, вероятно, является источником ваших проблем. Если вы запустите службу, она будет работать как пользователь (обычно mongod
или mongodb
) и так, если есть файлы в dbpath
теперь принадлежит пользователю root (и аналогично, ваши файлы журналов теперь могут принадлежать root), тогда он не сможет запуститься с ошибками разрешений.
Вероятно, вам придется исправить свои разрешения, как указано в этот ответ чтобы исправить это, и обычно следует избегать запуска mongod
как root в будущем.