Oke, ini semua tergantung pada izin, tapi mari kita lakukan selangkah demi selangkah. Saat Anda menjalankan sudo mongod
itu tidak memuat file konfigurasi sama sekali, itu benar-benar dimulai dengan yang dikompilasi secara default - port 27017, jalur database /data/db dll. - itulah sebabnya Anda mendapatkan kesalahan tentang tidak dapat menemukan folder itu. "Ubuntu default" hanya digunakan saat Anda mengarahkannya ke file konfigurasi (jika Anda mulai menggunakan perintah layanan, ini dilakukan untuk Anda di belakang layar).
Selanjutnya Anda menjalankannya seperti ini:
sudo mongod -f /etc/mongodb.conf
Jika tidak ada masalah sebelumnya, maka akan ada sekarang - Anda telah menjalankan prosesnya, dengan konfigurasi normal Anda (menunjuk ke dbpath dan log Anda yang biasa) sebagai pengguna root. Itu berarti bahwa sekarang akan ada sejumlah file di folder MongoDB normal dengan user:group dari root:root
.
Ini akan menyebabkan kesalahan ketika Anda mencoba memulainya sebagai layanan normal lagi, karena pengguna mongodb (yang akan dijalankan oleh layanan tersebut) tidak akan memiliki izin untuk mengakses root:root
tersebut file, dan terutama, mungkin tidak akan dapat menulis ke file log untuk memberi Anda informasi apa pun.
Oleh karena itu, untuk menjalankannya sebagai layanan normal, kami perlu memperbaiki izin tersebut. Pertama, pastikan MongoDB saat ini tidak berjalan sebagai root, lalu:
cd /var/log/mongodb
sudo chown -R mongodb:mongodb .
cd /var/lib/mongodb
sudo chown -R mongodb:mongodb .
Itu harus memperbaikinya (dengan asumsi pengguna:grup adalah mongodb:mongodb
), meskipun mungkin yang terbaik adalah memverifikasi dengan ls -al
atau serupa untuk memastikan. Setelah ini selesai, Anda seharusnya bisa membuat layanan kembali berjalan dengan sukses.