Das Problem kann gelöst werden durch:
- Sicherung aller Datenbanken (mit
mongodump
) - Entfernen aller Dateien in
/data/db
, aufgrund ihrer Inkompatibilität mit der neueren Version:rm -rf /data/db/*
- Neustart des MongoDB-Dienstes
- Wiederherstellen aller Datenbanken (mit
mongorestore
)
Ich habe ein ähnliches Problem mit Admin-DB festgestellt, als ich von der alten Mongodb 3.4 auf 4.2 aktualisiert habe.
Die Lösung besteht darin, alle DBs zu mongodumpen und /var/lib/mongodb zu löschen, dann mongorestore alle dbs zurück.
STORAGE [initandlisten] exception in initAndListen: MustDowngrade: Collection does not have UUID in KVCatalog. Collection: admin.system.users, terminating
2019-09-24T21:59:55.274+0000 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2019-09-24T21:59:55.274+0000 I NETWORK [initandlisten] removing socket file: /tmp/mongodb-27017.sock
2019-09-24T21:59:55.274+0000 I - [initandlisten] Stopping further Flow Control ticket acquisitions.
2019-09-24T21:59:55.274+0000 I CONTROL [initandlisten] now exiting
2019-09-24T21:59:55.274+0000 I CONTROL [initandlisten] shutting down with code:100
Die Ursache des Problems:mongodb 4.2 fügt userId mit UUID-Wert in system.user-Sammlung hinzu. Hoffe, das hilft.
Beim Upgrade einer anderen Mongo-Datenbank bin ich auf das gleiche Problem gestoßen wie bei Ihnen auf startup_log, es scheint, dass ich die Mongodb nicht gestoppt habe, als ich den Ordner /var/lib/mongodb löschte, nachdem ich Mongod gestoppt und die /var/lib/mongodb gelöscht und aktualisiert hatte zu 4.2, Fehler verschwindet.