IT story

mongoDB가 데이터를 저장하는 위치를 어떻게 알 수 있습니까?

hot-time 2020. 6. 10. 08:02
반응형

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


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


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

실행 ps -xa | grep mongod하고 db 위치에 대한 해당 매개 변수를 --dbpath명시 적으로 알려주 mongod는 a dbpath가 표시 되지 않고에가 없으면 mongodb.conf기본 위치는 다음 /data/db/같습니다 .


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

$ 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있지만 데이터 디렉토리에 있습니다-우리가 찾고있는 ...


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

grep dbpath /etc/mongod.conf

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

dbpath=/var/lib/mongodb

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


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

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

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


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

sudo apt-get install -y mongodb-org

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

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

db.serverCmdLineOpts()

출력 예 :

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

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


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


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

grep dbpath mongod.log

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


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

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


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

/data/db Linux 및 OS X에서

\data\db Windows에서

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

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

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


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

    2016-11-15T12:57:09.182-0500 I CONTROL  [initandlisten]
 MongoDB starting : pid=16448 port=27017 dbpath=C:\data\db\ 

참고 : https://stackoverflow.com/questions/7247474/how-can-i-tell-where-mongodb-is-storing-data-its-not-in-the-default-data-db

반응형