Подтвердить что ты не робот

Обновление до Ubuntu 15.04 от 14.10 breaks mongo - как исправить?

Вчера я совершил ошибку в обновлении до 15.04:-). Теперь мой монгон не может начать:

MongoDB shell version: 2.6.9
connecting to: test
2015-04-26T08:45:08.339-0600 warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
2015-04-26T08:45:08.339-0600 Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146
exception: connect failed

статус sudo service mongod

● mongod.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

Итак, я искал файл блокировки, связанный с mongodb, и удалил его. - нет помощи. Итак, я сделал следующее:

sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/
sudo service mongodb start

 sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/
2015-04-26T08:56:39.844-0600 [initandlisten] MongoDB starting : pid=17760 port=27017 dbpath=/var/lib/mongodb/ 64-bit host=Parke.dynu.com
2015-04-26T08:56:39.844-0600 [initandlisten] db version v2.6.9
2015-04-26T08:56:39.844-0600 [initandlisten] git version: df313bc75aa94d192330cb92756fc486ea604e64
2015-04-26T08:56:39.844-0600 [initandlisten] build info: Linux build20.nj1.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
2015-04-26T08:56:39.844-0600 [initandlisten] allocator: tcmalloc
2015-04-26T08:56:39.844-0600 [initandlisten] options: { repair: true, storage: { dbPath: "/var/lib/mongodb/" } }
2015-04-26T08:56:39.860-0600 [initandlisten] repairDatabase tracker
2015-04-26T08:56:39.860-0600 [initandlisten] allocating new ns file /var/lib/mongodb/_tmp_repairDatabase_0/tracker.ns, filling with zeroes...
2015-04-26T08:56:39.906-0600 [FileAllocator] allocating new datafile /var/lib/mongodb/_tmp_repairDatabase_0/tracker.0, filling with zeroes...
2015-04-26T08:56:39.907-0600 [FileAllocator] creating directory /var/lib/mongodb/_tmp_repairDatabase_0/_tmp
2015-04-26T08:56:39.908-0600 [FileAllocator] done allocating datafile /var/lib/mongodb/_tmp_repairDatabase_0/tracker.0, size: 64MB,  took 0 secs
2015-04-26T08:56:39.942-0600 [initandlisten] repairDatabase tracker-test
2015-04-26T08:56:39.942-0600 [initandlisten] allocating new ns file /var/lib/mongodb/_tmp_repairDatabase_0/tracker-test.ns, filling with zeroes...
2015-04-26T08:56:39.987-0600 [FileAllocator] allocating new datafile /var/lib/mongodb/_tmp_repairDatabase_0/tracker-test.0, filling with zeroes...
2015-04-26T08:56:39.988-0600 [FileAllocator] creating directory /var/lib/mongodb/_tmp_repairDatabase_0/_tmp
2015-04-26T08:56:39.990-0600 [FileAllocator] done allocating datafile /var/lib/mongodb/_tmp_repairDatabase_0/tracker-test.0, size: 64MB,  took 0.001 secs
2015-04-26T08:56:40.020-0600 [initandlisten] repairDatabase test
2015-04-26T08:56:40.020-0600 [initandlisten] allocating new ns file /var/lib/mongodb/_tmp_repairDatabase_0/test.ns, filling with zeroes...
2015-04-26T08:56:40.065-0600 [FileAllocator] allocating new datafile /var/lib/mongodb/_tmp_repairDatabase_0/test.0, filling with zeroes...
2015-04-26T08:56:40.065-0600 [FileAllocator] creating directory /var/lib/mongodb/_tmp_repairDatabase_0/_tmp
2015-04-26T08:56:40.067-0600 [FileAllocator] done allocating datafile /var/lib/mongodb/_tmp_repairDatabase_0/test.0, size: 64MB,  took 0.001 secs
2015-04-26T08:56:40.078-0600 [initandlisten] repairDatabase admin
2015-04-26T08:56:40.078-0600 [initandlisten] allocating new ns file /var/lib/mongodb/_tmp_repairDatabase_0/admin.ns, filling with zeroes...
2015-04-26T08:56:40.123-0600 [FileAllocator] allocating new datafile /var/lib/mongodb/_tmp_repairDatabase_0/admin.0, filling with zeroes...
2015-04-26T08:56:40.123-0600 [FileAllocator] creating directory /var/lib/mongodb/_tmp_repairDatabase_0/_tmp
2015-04-26T08:56:40.125-0600 [FileAllocator] done allocating datafile /var/lib/mongodb/_tmp_repairDatabase_0/admin.0, size: 64MB,  took 0.001 secs
2015-04-26T08:56:40.148-0600 [initandlisten] repairDatabase tracker-dev
2015-04-26T08:56:40.148-0600 [initandlisten] allocating new ns file /var/lib/mongodb/_tmp_repairDatabase_0/tracker-dev.ns, filling with zeroes...
2015-04-26T08:56:40.195-0600 [FileAllocator] allocating new datafile /var/lib/mongodb/_tmp_repairDatabase_0/tracker-dev.0, filling with zeroes...
2015-04-26T08:56:40.195-0600 [FileAllocator] creating directory /var/lib/mongodb/_tmp_repairDatabase_0/_tmp
2015-04-26T08:56:40.197-0600 [FileAllocator] done allocating datafile /var/lib/mongodb/_tmp_repairDatabase_0/tracker-dev.0, size: 64MB,  took 0.001 secs
2015-04-26T08:56:40.238-0600 [initandlisten] repairDatabase local
2015-04-26T08:56:40.238-0600 [initandlisten] allocating new ns file /var/lib/mongodb/_tmp_repairDatabase_0/local.ns, filling with zeroes...
2015-04-26T08:56:40.285-0600 [FileAllocator] allocating new datafile /var/lib/mongodb/_tmp_repairDatabase_0/local.0, filling with zeroes...
2015-04-26T08:56:40.285-0600 [FileAllocator] creating directory /var/lib/mongodb/_tmp_repairDatabase_0/_tmp
2015-04-26T08:56:40.288-0600 [FileAllocator] done allocating datafile /var/lib/mongodb/_tmp_repairDatabase_0/local.0, size: 64MB,  took 0.001 secs
2015-04-26T08:56:40.300-0600 [initandlisten] finished checking dbs
2015-04-26T08:56:40.300-0600 [initandlisten] dbexit: 
2015-04-26T08:56:40.300-0600 [initandlisten] shutdown: going to close listening sockets...
2015-04-26T08:56:40.300-0600 [initandlisten] shutdown: going to flush diaglog...
2015-04-26T08:56:40.300-0600 [initandlisten] shutdown: going to close sockets...
2015-04-26T08:56:40.300-0600 [initandlisten] shutdown: waiting for fs preallocator...
2015-04-26T08:56:40.300-0600 [initandlisten] shutdown: closing all files...
2015-04-26T08:56:40.300-0600 [initandlisten] closeAllFiles() finished
2015-04-26T08:56:40.300-0600 [initandlisten] shutdown: removing fs lock...
2015-04-26T08:56:40.300-0600 [initandlisten] dbexit: really exiting now
[email protected]:/var/lib/mongodb$ sudo service mongodb start
Failed to start mongodb.service: Unit mongodb.service failed to load: No such file or directory.

По-прежнему нет помощи. Итак, я создал каталог /data/db в надежде, что это может сработать - не нужно... Итак, какие-нибудь идеи? Я предполагаю, что это связано с удалением от выскочки?

Спасибо...

4b9b3361

Ответ 1

Для других, которые проходят через это - какая боль! Оказывается, Mongo > 2.6.3 имеет известную проблему с запуском: Support Systemd (не может запускать mongodb с помощью скриптов init с Fedora 15 или выше) Как отмечено здесь: https://jira.mongodb.org/browse/SERVER-17742 и кажется, что это, возможно, не будет полностью исправлено для > 2.6.3 до Ubuntu 16.04, если не будет сильного протеста.

Итак, решение для меня должно было выпустить:

sudo apt-get install --reinstall mongodb

Это вернулось обратно к монго 2.6.3 и ТЕПЕРЬ ВСЕ РАБОТЫ! Для тех, кто проходит через это... Спасибо всем, кто посмотрел на это!

Ответ 2

A здесь (в билете Jira, на который ссылается @JoelParke) объясняется, как очистить текущие версии mongodb ( > 3.0) на Ubuntu 15.04 путем замены источника apt:

echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

Помните, что Mongoid 4 не может аутентифицироваться в Mongo 3. Это будет исправлено в Mongoid 5.

Ответ 4

Запустите mongod как Daemon в последней версии (3.2)

Чтобы запустить процесс mongod в качестве демона и записать его вывод в файл журнала, используйте параметры --fork и --logpath. Вы должны создать каталог журнала; однако mongod создаст файл журнала, если он не существует.

Следующая команда запускает mongod в качестве демона и записывает вывод журнала в /var/log/mongodb.log.

mongod --fork --logpath/var/log/mongodb.log

Дополнительные параметры конфигурации
Обзор общих конфигураций и развертываний для случаев общего использования см. В разделе Настройка базы данных во время выполнения.

Остановить процессы mongod

При чистое выключение mongod завершает все ожидающие операции операции, сбрасывает все данные в файлы данных и закрывает все файлы данных. Другие выключения нечисты и могут нарушить правильность файлов данных.

Чтобы обеспечить чистое завершение работы, всегда останавливайте экземпляры mongod одним из следующих способов:

Использовать shutdownServer()

Завершите mongod из оболочки mongo с помощью метода db.shutdownServer() следующим образом:

использовать admin
db.shutdownServer()

Вызов того же метода из init script выполняет тот же результат.

Для систем с включенной авторизацией пользователи могут выдавать только db.shutdownServer() при аутентификации в базу данных администратора или через интерфейс localhost в системах без аутентификации.

Использовать --shutdown

В командной строке Linux отключите mongod с помощью параметра --shutdown в следующей команде:

mongod --shutdown