programing

mongoDB가 어디에 데이터를 저장하는지 어떻게 알 수 있습니까?(디폴트 /data/db!에는 없습니다).

javamemo 2023. 3. 21. 21:25
반응형

mongoDB가 어디에 데이터를 저장하는지 어떻게 알 수 있습니까?(디폴트 /data/db!에는 없습니다).

호스트에는 mongodb 인스턴스가 포함되어 있고 /db 디렉토리가 없기 때문에 데이터가 실제로 어디에 저장되어 있는지 알아보려면 어떻게 해야 할까요?

mongod는, 을 「」로 설정합니다./data/db/.

<고객명>을ps -xa | grep mongod'이렇게 하다'는 않습니다.--dbpath 명령어는 명시적으로 「」를 나타내고 있습니다.mongod할 때 db가 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)입니다.

,도 있다는 점에 하세요./var/lib/mongodb/mongod.lock을 보관 유지하다mongod편리성을 위해 PID는 데이터 디렉토리에 있습니다.이것들은 우리가 찾고 있는 것입니다.

db.serverCmdLineOpts()서버에 접속할 수 있는 경우 실제 경로를 찾는 가장 강력한 방법입니다..dbPath에는 서버가 하고 있는 되어 있으며 "parsed.storage.dbPath"에서 때 할 수 .

또, 여기서 제공하는 솔루션에서는 보증되지 않는 실제의 값(마지막의 재기동 후에 설정이 변경되지 않는 등)을 config 값이 반영하고 있는 것도 중요합니다.

db.serverCmdLineOpts()

출력 예:

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

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

실제로 mongod 인스턴스가 데이터를 저장하는 기본 디렉토리는 다음과 같습니다.

/data/db 및 X의 경우 OS X의 경우

\data\db の windows on

마찬가지로 mongodb 구성 파일에서 dbPath 설정을 찾을 수 있습니다.

  • 는 Linux입니다./etc/mongod.conf'MongoDB'입니다.디렉토리를 하려면 , 다음의 합니다.
    grep dbpath /etc/mongodb.conf
    
  • Windows 의 경우, 장소는 다음과 같습니다.<install directory>/bin/mongod.cfgmongod.cfg 파일을 열고 dbPath 옵션을 확인합니다.
  • MacOS의 경우 위치는 다음과 같습니다./usr/local/etc/mongod.confMongoDB의 공식 홈브루 탭에서 설치할 때 사용합니다.

패키지 매니저 설치에 포함된 기본 mongod.conf 설정 파일에서는 다음 플랫폼 고유의 기본값을 사용합니다.

+--------------------------+-----------------+------------------------+
|         Platform         | Package Manager | Default storage.dbPath |
+--------------------------+-----------------+------------------------+
| RHEL / CentOS and Amazon | yum             | /var/lib/mongo         |
| SUSE                     | zypper          | /var/lib/mongo         |
| Ubuntu and Debian        | apt             | /var/lib/mongodb       |
| macOS                    | brew            | /usr/local/var/mongodb |
+--------------------------+-----------------+------------------------+

컨피규레이션파일의 설정을 사용할 수 있는 것은, 의 경우 뿐입니다.

Linux 패키지 init 스크립트는 예상하지 않음storage.dbPath를 디폴트에서 변경합니다.리눅스 패키지를 사용하여storage.dbPath자체 init 스크립트를 사용하여 삽입 스크립트를 비활성화해야 합니다.

원천

여기 OSX 시스템에서 찾았습니다./usr/local/var/mongodb

Windows의 경우 MongoDB로 이동합니다.\Server\4.0\bin 폴더를 열고 임의의 텍스트에디터로 mongod.cfg 파일을 엽니다.그런 다음 dbPath 매개 변수를 지정하는 행을 찾습니다.선이 비슷해 보입니다.

dbPath: D:\Program Files\MongoDB\Server\4.0\data

MongoDB 4.4+ 및 Cent의 경우OS 8, 다음을 실행하여 경로를 찾았습니다.

grep dbPath /etc/mongod.conf

여기저기 뒤져서 발견했어/var/db도움을 주셔서 감사합니다.이 답변들은 다른 시스템(Ubuntu 등)에도 적용되어 다른 시스템에도 도움이 될 것입니다.

mongod.log와 그 위에 있는 grep을 찾을 수 있다면

grep dbpath mongod.log

dbpath 값은 mongodb의 데이터 위치입니다!!행운을 빈다 :)

기동하면 표시됩니다.하지만 나는 그것이 당신이 당신의 호스트에게 할 수 있는 것인지 아닌지 모르겠다.명령줄에 액세스하여 서비스를 재시작할 수 있는 경우 다음과 같은 메시지가 나타납니다.

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

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

반응형