Добре, всичко се свежда до разрешенията, но нека да го направим стъпка по стъпка. Когато стартирате sudo mongod
той изобщо не зарежда конфигурационен файл, той буквално започва с компилираното по подразбиране - порт 27017, път към базата данни на /data/db и т.н. - ето защо получихте грешката, че не можете да намерите тази папка. „По подразбиране на Ubuntu“ се използва само когато го насочите към конфигурационния файл (ако започнете да използвате командата service, това се прави вместо вас зад кулисите).
След това го изпълнихте така:
sudo mongod -f /etc/mongodb.conf
Ако не е имало проблеми преди, тогава ще има сега - стартирахте процеса с вашата нормална конфигурация (сочи към обичайния ви dbpath и log) като root потребител. Това означава, че сега ще има определен брой файлове в тази нормална папка MongoDB с user:group на root:root
.
Това ще доведе до грешки, когато се опитате да я стартирате отново като нормална услуга, тъй като потребителят на mongodb (който услугата ще се опита да стартира като) няма да има разрешение за достъп до тези root:root
файлове, и най-вече, вероятно няма да може да запише в регистрационния файл, за да ви даде каквато и да е информация.
Следователно, за да я стартираме като нормална услуга, трябва да коригираме тези разрешения. Първо се уверете, че MongoDB в момента не работи като root, след това:
cd /var/log/mongodb
sudo chown -R mongodb:mongodb .
cd /var/lib/mongodb
sudo chown -R mongodb:mongodb .
Това би трябвало да го оправи (ако приемем, че user:group е mongodb:mongodb
), въпреки че вероятно е най-добре да проверите с ls -al
или подобно, за да сме сигурни. След като това стане, трябва да можете да накарате услугата да стартира успешно отново.