Bagaimana saya bisa tahu di mana mongoDB menyimpan data? (tidak dalam default / data / db!)
160
Tuan rumah saya datang dengan contoh mongodb dan tidak ada direktori / db jadi sekarang saya bertanya-tanya apa yang bisa saya lakukan untuk mencari tahu di mana data sebenarnya disimpan.
Ada pertanyaan yang lebih baru tentang ini yang memiliki jawaban yang lebih baik: "Apa jalur database default untuk mongodb?" . Jalur data akan menjadi default /data/db(jika tidak ada file config sedang digunakan) atau dapat ditemukan via db.adminCommand("getCmdLineOpts").parsed.dbpath.
Stennie
6
pada OSX, mongo 3.0.4, saya harus menggunakan "db.adminCommand (" getCmdLineOpts "). parsed.storage.dbPath"
ski_squaw
@Stennie komentar Anda membantu saya (saya di Windows jadi saya menggunakan Robomongo), tetapi tautan pertanyaan Anda menunjukkan pertanyaan ini, bukan pada target yang Anda maksud - stackoverflow.com/a/12738557/112764 - dan di 3.x, sebenarnyadb.adminCommand("getCmdLineOpts").parsed.storage.dbpath
NateJ
5
@NateJ Terima kasih! The jawaban pada pertanyaan terkait memiliki contoh untuk MongoDB 2.6+ serta bentuk tua di <= 2.4. Ada juga shell helper yang dapat Anda gunakan alih-alih mengingat untuk mengubah ke admindatabase atau menggunakan adminCommand: db.serverCmdLineOpts().parsed.storage.dbPath(MongoDB 2.6+).
Stennie
Jawaban:
140
mongoddefault lokasi database ke /data/db/.
Jika Anda menjalankan ps -xa | grep mongoddan Anda tidak melihat --dbpathyang secara eksplisit memberi tahu mongoduntuk melihat parameter untuk lokasi db dan Anda tidak memiliki dbpathdi Anda mongodb.conf, maka lokasi default akan: /data/db/dan Anda harus melihat di sana.
Tidak melihat jalan, tetapi /usr/bin/mongod -f /etc/mongod.conf. Mengambil dbpatch dari konfigurasi.
Putnik
6
Periksa /usr/local/etc/mongod.conf(file konfigurasi) dan /usr/local/var/mongodb(lokasi basis data) juga. Pada beberapa sistem, ini akan menjadi default.
Ini /var/lib/mongodb/*pada instalasi default saya (Ubuntu 11.04).
Perhatikan bahwa ada juga /var/lib/mongodb/mongod.lockfile yang menyimpan mongodPID untuk kenyamanan, namun ia terletak di direktori data - yang kami cari ...
Tidak ada direktori / var / lib di server ini dan kedua perintah itu tidak berfungsi (yang pertama tidak dapat menemukan /etc/mongodb.conf yang kedua tidak dikenal lsof)
Zugwalt
Mungkin Anda harus menambahkan info untuk host Anda. Sepertinya bukan distro seperti Ubuntu.
DrColossos
4
Di Ubuntu 16.04 mongodb v3.4.10, itu adalah$ grep dbPath /etc/mongod.conf
ihsan
31
Dalam versi yang lebih baru dari mongodb v2.6.4 coba:
Milik saya di sini juga. Untuk orang-orang yang ingin menemukan direktori ini untuk memeriksa ukuran file:du -sh * | sort -hr
26
saya menemukan db.serverCmdLineOpts() cara paling kuat untuk menemukan jalur yang sebenarnya jika Anda dapat terhubung ke server. "Parsed.storage.dbPath" berisi path yang saat ini digunakan oleh server Anda dan tersedia baik saat diambil dari konfigurasi atau dari argumen baris perintah.
Juga dalam kasus saya, penting untuk memastikan bahwa nilai konfigurasi mencerminkan nilai aktual (yaitu konfigurasi tidak berubah setelah restart terakhir), yang tidak dijamin oleh solusi yang ditawarkan di sini.
Bekerja seperti pesona! Terima kasih dan ini harus dibatalkan :)
Bryan Jacob
21
Sementara pertanyaan ini ditargetkan untuk instance Linux / Unix dari Mongo, ini adalah salah satu hasil pencarian pertama terlepas dari sistem operasi yang digunakan, jadi untuk pengguna Windows masa depan yang menemukan ini:
Jika MongoDB diatur sebagai Layanan Windows dengan cara default, Anda biasanya dapat menemukannya dengan melihat entri 'Path to executable' di Properti Layanan MongoDB:
Tidak begitu jelas, tetapi pertanyaannya adalah untuk * nix os
st78
3
@ st78 Saya tahu, tapi ini masih salah satu hasil Google pertama ketika mencari lokasi di Windows, itulah sebabnya saya meninggalkan jawaban yang membahas jalur Windows (setelah saya menemukan jawabannya) untuk orang-orang seperti saya yang sengaja menemukannya.
Robotnik
15
Dari pengalaman saya, lokasi default adalah /var/lib/mongodbsetelah saya melakukannya
Pertanyaannya adalah "Bagaimana saya bisa menemukan" lokasi penyimpanan data mongodb. bukan hanya jalur untuk pengguna atau platform tertentu.
Yu Chen
4
Untuk windows Masuk ke dalam folder MongoDB \ Server \ 4.0 \ bin dan buka file mongod.cfg dalam editor teks apa pun. Kemudian cari baris yang menentukan param dbPath. Garisnya terlihat mirip
dbPath: D: \ Program Files \ MongoDB \ Server \ 4.0 \ data
Menemukannya hanya dengan menyodok masuk /var/db. Terima kasih atas bantuannya - saya yakin jawaban ini berlaku untuk sistem lain (misalnya Ubuntu) dan akan membantu orang lain!
Sebenarnya, direktori default tempat instance mongod menyimpan datanya
/data/db di Linux dan OS X,
\data\db di Windows
Jika Anda menginstal MongoDB menggunakan sistem manajemen paket , periksa/etc/mongod.conf file yang disediakan oleh paket Anda untuk melihat direktori yang ditentukan.
The storage.dbPathpengaturan yang tersedia hanya untukmongod .
Skrip init paket Linux tidak berharap storage.dbPathberubah dari default. Jika Anda menggunakan paket-paket Linux dan mengubahnya storage.dbPath, Anda harus menggunakan skrip init Anda sendiri dan menonaktifkan skrip bawaan.
Saat Anda memulainya, itu menunjukkan Anda. Tetapi saya tidak tahu apakah itu sesuatu yang dapat Anda lakukan atau tidak pada tuan rumah Anda. Jika Anda memiliki akses ke baris perintah dan dapat memulai kembali layanan, Anda akan mendapatkan sesuatu seperti:
2016-11-15T12:57:09.182-0500 I CONTROL [initandlisten]MongoDB starting : pid=16448 port=27017 dbpath=C:\data\db\
/data/db
(jika tidak ada file config sedang digunakan) atau dapat ditemukan viadb.adminCommand("getCmdLineOpts").parsed.dbpath
.db.adminCommand("getCmdLineOpts").parsed.storage.dbpath
admin
database atau menggunakanadminCommand
:db.serverCmdLineOpts().parsed.storage.dbPath
(MongoDB 2.6+).Jawaban:
mongod
default lokasi database ke/data/db/
.Jika Anda menjalankan
ps -xa | grep mongod
dan Anda tidak melihat--dbpath
yang secara eksplisit memberi tahumongod
untuk melihat parameter untuk lokasi db dan Anda tidak memilikidbpath
di Andamongodb.conf
, maka lokasi default akan:/data/db/
dan Anda harus melihat di sana.sumber
/etc/mongod.conf
/usr/bin/mongod -f /etc/mongod.conf
. Mengambil dbpatch dari konfigurasi./usr/local/etc/mongod.conf
(file konfigurasi) dan/usr/local/var/mongodb
(lokasi basis data) juga. Pada beberapa sistem, ini akan menjadi default.Apa yang dikatakan file konfigurasi Anda?
Jika tidak benar, coba ini, file database Anda akan ada pada daftar:
Ini
/var/lib/mongodb/*
pada instalasi default saya (Ubuntu 11.04).Perhatikan bahwa ada juga
/var/lib/mongodb/mongod.lock
file yang menyimpanmongod
PID untuk kenyamanan, namun ia terletak di direktori data - yang kami cari ...sumber
$ grep dbPath /etc/mongod.conf
Dalam versi yang lebih baru dari mongodb v2.6.4 coba:
Ini akan memberi Anda sesuatu seperti ini:
Dan di situlah ia menyimpan data.
sumber
du -sh * | sort -hr
saya menemukan
db.serverCmdLineOpts()
cara paling kuat untuk menemukan jalur yang sebenarnya jika Anda dapat terhubung ke server. "Parsed.storage.dbPath" berisi path yang saat ini digunakan oleh server Anda dan tersedia baik saat diambil dari konfigurasi atau dari argumen baris perintah.Juga dalam kasus saya, penting untuk memastikan bahwa nilai konfigurasi mencerminkan nilai aktual (yaitu konfigurasi tidak berubah setelah restart terakhir), yang tidak dijamin oleh solusi yang ditawarkan di sini.
Contoh output:
sumber
Sementara pertanyaan ini ditargetkan untuk instance Linux / Unix dari Mongo, ini adalah salah satu hasil pencarian pertama terlepas dari sistem operasi yang digunakan, jadi untuk pengguna Windows masa depan yang menemukan ini:
Jika MongoDB diatur sebagai Layanan Windows dengan cara default, Anda biasanya dapat menemukannya dengan melihat entri 'Path to executable' di Properti Layanan MongoDB:
sumber
Dari pengalaman saya, lokasi default adalah
/var/lib/mongodb
setelah saya melakukannyasumber
Saya menemukan milik saya di sini di sistem OSX / usr / local / var / mongodb
sumber
Untuk windows Masuk ke dalam folder MongoDB \ Server \ 4.0 \ bin dan buka file mongod.cfg dalam editor teks apa pun. Kemudian cari baris yang menentukan param dbPath. Garisnya terlihat mirip
sumber
Menemukannya hanya dengan menyodok masuk
/var/db
. Terima kasih atas bantuannya - saya yakin jawaban ini berlaku untuk sistem lain (misalnya Ubuntu) dan akan membantu orang lain!sumber
Jika Anda entah bagaimana bisa menemukan mongod.log dan lakukan grep di atasnya
Nilai untuk dbpath adalah lokasi data untuk mongodb !! Semua yang terbaik :)
sumber
Sebenarnya, direktori default tempat instance mongod menyimpan datanya
/data/db
di Linux dan OS X,\data\db
di WindowsJika Anda menginstal MongoDB menggunakan sistem manajemen paket , periksa
/etc/mongod.conf
file yang disediakan oleh paket Anda untuk melihat direktori yang ditentukan.The
storage.dbPath
pengaturan yang tersedia hanya untukmongod
.Skrip init paket Linux tidak berharap
storage.dbPath
berubah dari default. Jika Anda menggunakan paket-paket Linux dan mengubahnyastorage.dbPath
, Anda harus menggunakan skrip init Anda sendiri dan menonaktifkan skrip bawaan.sumber
Saat Anda memulainya, itu menunjukkan Anda. Tetapi saya tidak tahu apakah itu sesuatu yang dapat Anda lakukan atau tidak pada tuan rumah Anda. Jika Anda memiliki akses ke baris perintah dan dapat memulai kembali layanan, Anda akan mendapatkan sesuatu seperti:
sumber