mongoDB가 데이터를 저장하는 위치를 어떻게 알 수 있습니까? (기본 / data / db에는 없습니다!)


160

내 호스트는 mongodb 인스턴스와 함께 제공되었으며 / db 디렉토리가 없으므로 이제 데이터가 실제로 저장되는 위치를 찾기 위해 무엇을 할 수 있는지 궁금합니다.


7
더 나은 해답이이에 최근 문제가있다 : "? MongoDB에 대한 기본 데이터베이스 경로입니다 무슨 일이" . 데이터 경로는 기본값 /data/db(설정 파일이 사용되지 않는 경우)이거나을 통해 검색 할 수 db.adminCommand("getCmdLineOpts").parsed.dbpath있습니다.
Stennie

6
OSX, mongo 3.0.4에서는 "db.adminCommand ("getCmdLineOpts "). parsed.storage.dbPath"를
사용해야했습니다

- 귀하의 코멘트가 의도 한 목표에 있지,하지만 귀하의 질문에 링크 지점이 질문에 (내가 Robomongo을 사용하고 있으므로 Windows에서 해요) 저를 도와 @Stennie stackoverflow.com/a/12738557/112764 -과에 3.x, 실제로db.adminCommand("getCmdLineOpts").parsed.storage.dbpath
NateJ

5
@NateJ 감사합니다! 관련 질문에 대한 대답은 MongoDB를위한 예 2.6+뿐만 아니라 <= 2.4에서 기존의 형태를 갖는다. admin데이터베이스 를 변경 하거나 adminCommand: db.serverCmdLineOpts().parsed.storage.dbPath(MongoDB 2.6+)를 사용 하는 것을 기억하는 대신 사용할 수있는 쉘 헬퍼도 있습니다 .
Stennie

답변:


140

mongod기본 데이터베이스 위치는 /data/db/입니다.

당신이 실행하는 경우 ps -xa | grep mongod그리고 당신은 볼 수 없습니다 --dbpath명시 적으로 알려줍니다 mongodDB를 위치에 대한 해당 매개 변수를보고 당신이없는 dbpath당신의 mongodb.conf다음 기본 위치는 다음과 같습니다 /data/db/당신이 보일 것입니다.


11
해당 디렉토리가 없음
user2384994

18
@ user2384994 내 위치는/etc/mongod.conf
K-독성이 증가하고 있습니다.

1
경로를 보지 못했지만 /usr/bin/mongod -f /etc/mongod.conf. 구성에서 dbpatch를 가져 왔습니다.
Putnik

6
/usr/local/etc/mongod.conf(설정 파일) 및 /usr/local/var/mongodb(데이터베이스 위치)도 확인하십시오 . 일부 시스템에서는 이것이 기본값입니다.
마일스 에릭슨

그럼이 사람은 모든 MongoDB의 버전에 대해 정확하게 현재의 경로를 인쇄해야 stackoverflow.com/a/52036070/248616
남 G VU

57

구성 파일은 무엇을 말합니까?

$ grep dbpath /etc/mongodb.conf

올바르지 않은 경우 다음을 시도하십시오. 데이터베이스 파일이 목록에 있습니다.

$ sudo lsof -p `ps aux | grep mongodb | head -n1 | tr -s ' ' | cut -d' ' -f 2` | grep REG

그건 /var/lib/mongodb/*내 기본 설치 (우분투 11.04)에.

편의를 위해 PID를 /var/lib/mongodb/mongod.lock보유한 파일 도 mongod있지만 데이터 디렉토리에 있습니다-우리가 찾고있는 ...


이 서버에 / var / lib 디렉토리가없고이 두 명령이 작동하지 않습니다 (첫 번째는 인식 할 수없는 lsof 중 /etc/mongodb.conf를 찾을 수 없음)
Zugwalt

호스트 정보를 추가해야 할 수도 있습니다. 배포판과 같은 우분투가 아닌 것 같습니다.
DrColossos

4
우분투 16.04 MongoDB를의 v3.4.10에, 그것은이다$ grep dbPath /etc/mongod.conf
ihsan

31

mongodb v2.6.4의 최신 버전에서 다음을 시도하십시오.

grep dbpath /etc/mongod.conf

그것은 당신에게 다음과 같은 것을 줄 것입니다 :

dbpath=/var/lib/mongodb

그리고 그것이 데이터를 저장하는 곳입니다.


광산도 여기에있었습니다. 파일 크기를 확인하기 위해이 디렉토리를 찾으려는 사람들의 경우 :du -sh * | sort -hr

26

내가 찾을 db.serverCmdLineOpts()서버에 연결할 수 있는지 실제 경로를 찾을 수있는 가장 강력한 방법입니다. "parsed.storage.dbPath"에는 서버가 현재 사용중인 경로가 포함되어 있으며 구성 또는 명령 줄 인수에서 가져 왔을 때 사용할 수 있습니다.

또한 필자의 경우 구성 값이 실제 값을 반영하는지 확인하는 것이 중요했습니다 (즉, 마지막 다시 시작 후에 구성이 변경되지 않았습니다). 여기에서 제공된 솔루션에서 보장하지 않습니다.

db.serverCmdLineOpts()

출력 예 :

{
    "argv" : [ 
        // --
    ],
    "parsed" : {
        "config" : "/your-config",
        "storage" : {
            "dbPath" : "/your/actual/db/path",
            // --
        }
    },
    "ok" : 1.0
}

3
이것은 최고의 답변입니다
Oversteer

나에게도 최고의 답변
Nam G VU

매력처럼 일했다! 고마워요 그리고 이것은 공감해야합니다 :)
Bryan Jacob

21

이 질문은 Mongo의 Linux / Unix 인스턴스를 대상으로하지만 사용 된 운영 체제와 상관없이 첫 번째 검색 결과 중 하나이므로 향후 Windows 사용자는 다음을 찾습니다.

MongoDB가 기본 방식으로 Windows 서비스로 설정된 경우 일반적으로 MongoDB 서비스의 속성에서 '실행 파일 경로'항목을 보면 찾을 수 있습니다.

'실행 파일 경로'옵션을 표시하는 속성 창


그것은 분명 아니지만, 질문 * 괜찬아 운영 체제입니다
ST78

3
@ st78 알고 있습니다. 그러나 Windows에서 위치를 검색 할 때 여전히 Google 검색의 첫 번째 결과 중 하나이므로 Windows를 우연히 발견 한 사람들을 위해 Windows 경로 (내가 알아 낸 경우)에 대한 답변을 남겼습니다.
Robotnik

15

내 경험상 기본 위치는 /var/lib/mongodb내가 한 후에입니다.

sudo apt-get install -y mongodb-org

1
Linux Mint 17.3 사용자의 경우이를 확인할 수 있습니다.
Matheus Dal'Pizzol

8

OSX 시스템 / usr / local / var / mongodb에서 내 것을 찾았습니다.


3
이것은 Homebrew 사용자에게 해당됩니다
Matthew

1
문제는 mongodb 데이터 저장 위치를 ​​"찾는 방법"입니다. 특정 사용자 나 플랫폼의 경로 만이 아닙니다.
유 첸

4

Windows의 경우 MongoDB \ Server \ 4.0 \ bin 폴더로 이동하여 텍스트 편집기에서 mongod.cfg 파일을여십시오. 그런 다음 dbPath 매개 변수를 지정하는 행을 찾으십시오. 선이 비슷해 보입니다

dbPath : D : \ Program Files \ MongoDB \ 서버 \ 4.0 \ data


2

에서 파고 들어 발견했습니다 /var/db. 도움을 주셔서 감사합니다.이 답변은 다른 시스템 (예 : 우분투)에 적용되며 다른 시스템에도 도움이 될 것입니다.


2

어떻게 든 mongod.log를 찾을 수 있고 그 위에 grep을하십시오

grep dbpath mongod.log

dbpath의 값은 mongodb의 데이터 위치입니다 !! 모든 최고 :)


2

실제로 mongod 인스턴스가 데이터를 저장하는 기본 디렉토리는

/data/db Linux 및 OS X에서

\data\db Windows에서

당신이 경우 패키지 관리 시스템을 사용하여 MongoDB를 설치 , 검사 /etc/mongod.conf디렉토리를 지정 확인하기 위해 패키지에서 제공하는 파일을.

storage.dbPath설정은에서만 사용할 수 있습니다 mongod.

Linux 패키지 init 스크립트는 storage.dbPath기본값에서 변경 될 것으로 예상하지 않습니다 . Linux 패키지를 사용하고 변경 storage.dbPath하는 경우 고유 한 init 스크립트를 사용하고 내장 스크립트를 비활성화해야합니다.


1

시작할 때 표시됩니다. 그러나 그것이 호스트에서 할 수 있는지 아닌지 모르겠습니다. 명령 행에 액세스 할 수 있고 서비스를 다시 시작할 수 있으면 다음과 같은 결과가 나타납니다.

    2016-11-15T12:57:09.182-0500 I CONTROL  [initandlisten]
 MongoDB starting : pid=16448 port=27017 dbpath=C:\data\db\ 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.