Обновление до 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 в надежде, что это может сработать - не нужно...
Итак, какие-нибудь идеи? Я предполагаю, что это связано с удалением от выскочки?
Спасибо...
Ответы
Ответ 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.
Ответ 3
Вместо этого вы можете использовать пакет debian, следуйте инструкциям (http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian/) и замените источник на
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
Ответ 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