Назад | Перейти на главную страницу

mongod не запустится, если я не укажу свой собственный путь к конфигу

Недавно я обновил свой 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 в будущем.