Saya buat /data/db
di direktori root dan berlari ./mongod
:
[initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating
[initandlisten] shutdown: going to close listening sockets...
[initandlisten] shutdown: going to flush diaglog...
[initandlisten] now exiting
[initandlisten] shutting down with code:100
ls -ld /data/db
danid
agar kami dapat memberi saran.-ld
bagiannya :)drwxrwxrwx. 4 mongod mongod 4096 Sep 17 18:18 /data/db
dan saya masih mendapatkan kesalahan. Ada ide?Jawaban:
Masalahnya adalah direktori yang Anda buat,
/data/db
dimiliki dan hanya dapat ditulis oleh pengguna root, tetapi Anda menjalankan mongod seperti diri Anda sendiri. Ada beberapa cara untuk mengatasi ini, tetapi pada akhirnya, Anda harus memberikan direktori yang bersangkutan izin yang tepat. Jika ini untuk produksi, saya akan menyarankan Anda untuk memeriksa dokumen dan memikirkannya dengan seksama - Anda mungkin ingin berhati-hati.Namun, jika ini hanya untuk pengujian dan Anda hanya perlu ini untuk bekerja dan melanjutkan, Anda bisa mencoba ini, yang akan membuat direktori dapat ditulisi oleh semua orang:
atau ini, yang akan membuat direktori milik Anda:
sumber
-R
mengubah semua/data/db
file di dalamnya secara rekursif.chmod
menghasilkan kesalahan baruinitAndListen : operation not permitted
, tetapichown
berhasil.chmod -R 755 /data/db
Di Mac, saya harus melakukan hal berikut:
karena ada juga file di
/tmp
mana Mongo juga membutuhkan aksessumber
Jika sistem Anda menggunakan SELinux, pastikan Anda menggunakan konteks yang tepat untuk direktori yang Anda buat:
dan mengkloning konteks dengan:
sumber
Saya mengalami masalah yang sama dan solusi berikut memecahkan masalah ini. Anda harus mencoba solusi berikut.
sumber
Pertama-tama hentikan semua layanan mongoDB , lalu buat direktori
/
, artinya root, jika Anda belum punya, dan hapus juga file port. berikan semua izin ke direktori itu, jadilah pemilik direktori tersebut, jalankan perintah di bawah ini:Sekarang Anda sudah selesai, mulai saja layanan MongoDB, jika tidak membantu, cobalah untuk mengubah port seperti:
Catatan: Bagi saya semua ini berhasil dan berharap akan berhasil untuk Anda, kawan!
sumber
Perbaiki izin
/data/db
(atau/var/lib/mongodb
):kemudian restart MongoDB misalnya menggunakan
Jika tidak membantu, periksa pesan kesalahan Anda jika Anda menggunakan direktori data yang berbeda dengan / var / lib / mongodb. Dalam hal ini dijalankan
sumber
sumber
Solusi yang bagus, tapi saya heran mengapa tidak ada yang memberikan solusi untuk windows.
Jika Anda menggunakan windows, Anda hanya perlu "Jalankan sebagai Administrator" cmd.
sumber
Jika Anda memeriksa log mongodb Anda dan Anda mendapatkan kesalahan seperti itu maka ikuti saja langkah-langkah seperti yang saya lakukan. Itu terjadi karena masalah izin dengan
/data/db
direktori Anda . Saya menggunakan ubuntu16.04 dan saya menemukan solusi dengan menjalankan dua perintah sederhana sebagai berikut.Langkah 1: Berikan izin ke direktori / data / db:
Langkah 2: Cobalah untuk memulai layanan mongod sebagai:
Langkah 3: Periksa status layanan mongod:
sumber
Jika Anda tidak perlu memiliki direktori basis data di root, Anda dapat membuatnya
data/db
di direktori home Anda (mkdir -p ~/data/db
).Kemudian Anda dapat memulai server MongoDB dengan
--dbpath
opsi:(Ini dengan asumsi Anda memulainya dari terminal. Untuk beberapa alasan aneh,
mongod
tidak menerima ~ sebagai jalur direktori rumah, maka tipuan substitusi bash echo, Anda juga dapat menulis/home/yourusername/data/db
)Padahal, tidak harus begitu
~/data/db
, itu bisa di mana saja Anda inginkan dan dengan cara ini Anda dapat memiliki banyak jalur basis data dan mengatur semuanya dengan baik. Mungkin bukan pilihan terbaik untuk produksi (tergantung pada apa yang ingin Anda lakukan), tetapi untuk mengembangkan karya baik-baik saja.sumber
Saya menangani masalah yang sama:
Ubah ke direktori MongoDB yang berisi
bin
direktori, dan jalankan:Menjalankan MongoDB sebagai pengguna root, Anda mungkin diminta untuk memasukkan kata sandi root. Jika Anda masih tidak dapat menjalankan MongoDB, maka periksa izin untuk direktori data MongoDB. Memasukkan:
atau ketik
ls -l /
untuk izin untuk semua direktori dan file dalam direktori termasuk/data
direktori.Mode izin untuk pengguna root harus "
rwx
", yang berarti pengguna root dapat membaca, menulis, dan mengeksekusi file. Untuk mewujudkannya, kami menggunakan:755
adalah notasi oktal untuk mengatur izin, dari/data
direktori ke "rwxr-xr-x
", yang berarti pengguna root dapat membaca, menulis, dan mengeksekusi, sedangkan "grup" dan "semua orang" hanya dapat membaca dan mengeksekusi.Catatan: Saat Anda tidak bisa melakukan ini, ketik saja:
untuk mengatur izin sebagai pengguna root.
Kemudian, ketika selesai dengan langkah itu, ambil kembali mode izin menggunakan:
yang seharusnya terlihat seperti:
Anda tidak perlu khawatir tentang "
d
" di awal, dan perhatikan bahwa izin mencerminkan "rwxr-xr-x
".Anda sekarang dapat mengubah kembali ke direktori MongoDB dan ketik:
untuk menjalankan MongoDB.
sumber
Anda hanya perlu menjalankan perintah sebagai pengguna super:
cukup ketik dari terminal: sudo su mongod
sumber
Jika Anda menggunakan Windows , dan Anda mencoba mengatur MongoDB, jalankan cmd karena Admnistrator adalah jalan maju seperti yang disarankan Enrique di atas, lihat di sini
sumber
Ini bekerja untuk saya di Ubuntu LTS 20.04:
sumber