Mongod가 /data/db 폴더가 없다고 불평한다.
오늘 처음으로 새 맥을 사용해요./data/db 디렉토리를 작성하는 단계까지 mongodb.org의 시작 가이드를 따릅니다.btw, homebrew 루트를 사용했습니다.
터미널을 열면 홈디렉토리에 있는 것 같습니다.ls를 실행하면 Desktop Application Movies Music Pictures Documents and Library 폴더가 나타납니다.
그래서 저는
mkdir -p /data/db
첫째, 허가가 거부되었습니다.나는 30분 동안 다른 것들을 시도했고 마침내:
mkdir -p data/db
ls를 실행하면 데이터 디렉토리와 중첩된 DB 폴더가 존재합니다.
그 후 mongod를 기동하면 data/db를 찾을 수 없다고 불평합니다.
내가 어떤 일을 잘못 했나요?
자, 이제 제가
sudo mkdir -p /data/db
"ls"를 실행하면 data dir와 db dir가 표시됩니다.그러나 db dir 안에는 아무것도 없고 mongod를 실행하면
Sun Oct 30 19:35:19 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
Sun Oct 30 19:35:19 dbexit:
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to close listening sockets...
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to flush diaglog...
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to close sockets...
Sun Oct 30 19:35:19 [initandlisten] shutdown: waiting for fs preallocator...
Sun Oct 30 19:35:19 [initandlisten] shutdown: lock for final commit...
Sun Oct 30 19:35:19 [initandlisten] shutdown: final commit...
Sun Oct 30 19:35:19 [initandlisten] shutdown: closing all files...
Sun Oct 30 19:35:19 [initandlisten] closeAllFiles() finished
Sun Oct 30 19:35:19 [initandlisten] shutdown: removing fs lock...
Sun Oct 30 19:35:19 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Sun Oct 30 19:35:19 dbexit: really exiting now
EDIT Geting 오류 메시지:
sudo chown mongod:mongod /data/db
chown: mongod: Invalid argument
여러분, 감사합니다.
디렉토리를 잘못된 위치에 생성했습니다.
/data/db는 '/' 루트 디렉터리 바로 아래에 있는 반면, 'data/db'는 선행 / 없이 다른 디렉터리(예: '/root' 홈디렉토리) 안에 생성되었음을 의미합니다.
이 디렉토리를 루트로 생성해야 합니다.
중 하나를 .sudo
예 , ) 。sudo mkdir -p /data/db
이렇게 요.su -
유저가 되어, 에는 「아까부터」, 「아까부터」가 사용됩니다.mkdir -p /data/db
주의:
MongoDB에는 데이터 디렉토리를 다른 위치에 만들 수 있는 옵션도 있지만 DB 복구와 같은 작업은 항상 수동으로 지정해야 하므로 일반적으로 권장되지 않습니다.저는 그렇게 하는 것을 추천하지 않습니다.
편집:
"Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied" 라는 오류 메시지가 나타납니다.작성한 디렉토리는 올바른 권한과 소유권을 가지고 있지 않습니다.MongoDB 프로세스를 실행하는 사용자가 쓸 수 있어야 합니다.
'/data/db/' 디렉터리의 사용 권한 및 소유권을 보려면 다음을 수행하십시오(권한 및 소유권은 다음과 같습니다).
$ ls -ld /data/db/
drwxr-xr-x 4 mongod mongod 4096 Oct 26 10:31 /data/db/
왼쪽 'drwxr-xr-x'에는 사용자, 그룹 및 기타에 대한 권한이 표시됩니다.'mongod mongod'는 디렉토리를 소유한 사용자와 해당 디렉토리가 속한 그룹을 보여줍니다.이 경우 둘 다 '몽고드'라고 불립니다.
'/data/db' 디렉터리에 위의 사용 권한 및 소유권이 없는 경우 다음을 수행하십시오.
먼저 mongo 사용자가 가지고 있는 사용자와 그룹을 확인합니다.
# grep mongo /etc/passwd
mongod:x:498:496:mongod:/var/lib/mongo:/bin/false
/etc/passwd는 데몬이므로 mongod 엔트리가 있어야 합니다.
sudo chmod 0755 /data/db
sudo chown -R 498:496 /data/db # using the user-id , group-id
user-name 및 group-name은 다음과 같이 사용할 수도 있습니다(/etc/passwd 및 /etc/group에 있습니다).
sudo chown -R mongod:mongod /data/db
잘 될 거야
아래 댓글에서 일부 사용자는 다음을 사용했습니다.
sudo chown -R `id -u` /data/db
sudo chmod -R go+w /data/db
또는
sudo chown -R $USER /data/db
sudo chmod -R go+w /data/db
단점은 $USER가 로그인 셸이 있는 계정이라는 것입니다.Daemon에는 보안상의 이유로 셸이 없는 것이 이상적입니다.그 때문에, 상기의 패스워드 파일의 grep에 /bin/false 가 표시됩니다.
디렉토리 권한의 의미를 더 잘 이해하려면 여기를 확인하십시오.
http://www.perlfect.com/articles/chmod.shtml
또한 Google에서 찾을 수 있는 튜토리얼 중 하나인 "초보자를 위한 UNIX"를 확인하십시오.
Nik과 같은 에러가 발생한 후
chown: id -u: 잘못된 인수입니다.
Ubuntu 포럼에서 잘못된 유형의 따옴표(백인용이어야 함)를 사용한 것으로 보입니다.
대신 저는 그냥
sudo chown $USER / data / db
그리고 이제 몽고드는 필요한 허가를 가지고 있다.
이 방법은 다음과 같은 코멘트에서 확인할 수 있습니다.
sudo chown -R $USER /data/db
폴더를 만듭니다.
sudo mkdir -p /data/db/
폴더에 대한 권한을 부여합니다.
sudo chown `id -u` /data/db
다음 " " " " 를 실행할 수 .mongod
없이sudo
OSX 요세미티
OS X os os os os os os os os os os os os os 。 $ brew services restart mongodb $ brew services stop mongodb
뛰었습니다.mongod --config /usr/local/etc/mongod.conf
문제가 해결되었습니다.
mongodb homebrew 패키지 업그레이드 후 오류가 발생한 것 같습니다.
인수 없이 mongo를 실행하면 운영 기계에서 실행 중인 것으로 간주되므로 기본 위치를 사용합니다.
자체 데이터베이스(dev 또는 다른 데이터베이스)를 사용하는 경우:
./bin/mongod --dbpath ~/data/db
YOUR_USER_NAME 및 직원이 그룹인 Mac에 brew를 통해 설치
sudo mkdir -p /data/db
sudo chmod +x+r+w /data/db/
sudo touch /data/db/mongod.lock
sudo chown YOUR_USER_NAME:staff /data/db
sudo chmod +x+r+w /data/db/mongod.lock
sudo chown YOUR_USER_NAME:staff /data/db/mongod.lock
Mac을 사용하여 Catalina 및 Homebrew를 통해 설치된 Mongodb를 실행하는 경우 이 명령을 입력하면 바로 사용할 수 있습니다.
brew services start mongodb-community
서 하고 싶은 은, 만약 을 시도하고, .mkdir: /data/db: Read-only file system
이 코멘트를 봐주세요.https://stackoverflow.com/a/58895373 입니다.
이렇게 하면 이 답변에 응답한 사용자가 Control F를 "읽기 전용"으로 하면 이 메시지가 나타납니다.
는 MongoDB를 할 수 .dbPath
더입니니다다
mongod
없이dbpath
는 '비밀경로'가 됩니다./data/db
할 때는 예를 ,, 비, 를, 음, 음, 음, 음, 음, 음, 음, 음, 음, 음, 음, 음, 음, 음, 음, 음, 음, 음, 음, 음, 음 등입니다.systemctl start mongod
컨피규레이션파일로 으로 말하면 '이러다'입니다./etc/mongod.cfg
는 "Defaults" 입니다.
플랫폼 | 패키지 매니저 | : " "storage.dbPath |
---|---|---|
RHEL / CentOS 및 Amazon | 음미하다 | /var/lib/mongo |
수세 | 점퍼 | /var/lib/mongo |
우분투와 데비안 | 적절한 | /var/lib/mongodb |
MacOS | 양조하다 | /usr/local/var/mongodb |
따라서 MongoDB는 서비스를 어떻게 시작하느냐에 따라 다른 데이터 폴더에 접근하려고 합니다.
현재입니다)./
ㄹ 것 같다.
번째 , 하고 있기 에 폴더를 수 없습니다./
디렉토리인 에 ""를 붙여야 sudo
dosuperuser do의그런 다음 암호를 입력하라는 메시지가 표시됩니다.
따라서 완전한 명령어는 다음과 같습니다.
$ sudo mkdir -p /data/db
기존 Mongodb 설정에서 이 문제가 발생했습니다.왜 이런 일이 일어났는지 아직 알 수 없지만 Mongod 프로세스에서 mongod.config 파일을 찾을 수 없었습니다.구성 파일을 찾을 수 없었기 때문에 존재하지 않는 폴더인 /data/db에서 DB 파일을 찾으려고 했습니다.단, 컨피규레이션파일은 아직 사용 가능하기 때문에 프로세스에 컨피규레이션파일에 대한 권한이 있는지 확인하고 다음과 같이 --config 플래그를 사용하여 mongod 프로세스를 실행합니다.
mongod --config /etc/mongod.conf
컨피규레이션파일 자체에는 다음과 같은 설정이 있습니다.
storage:
dbPath: /var/lib/mongodb
이렇게 하면 실제 DB 폴더를 다시 찾을 수 있습니다.
했다
brew install mongodb
2월 에 2018년 2월 1일 날 mongodb
§ 3.6.2.
위의 올루크의 대답에 자극받아, 나는 그냥 시도했다.
$ brew services restart mongodb
이치노 ★★★mongoose.createConnection()
콜은 내가 원하는 대로 했다.커뮤니티 버전인 GUI MongoDB 나침반이 연결됩니다.나침반을 사용해서 그 광경을 보고local.startup_log
를 시작한 지 안 된 내 와 mongoDB가 포함되어 있습니다.
cmdLine:Object
config:"/usr/local/etc/mongod.conf"
그리고 실제로 그런 파일이 있었다.
$ more /usr/local/etc/mongod.conf
systemLog:
destination: file
path: /usr/local/var/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: /usr/local/var/mongodb
net:
bindIp: 127.0.0.1
그리고 거기에/usr/local/var/mongodb
불명확한 파일이 많은 디렉토리.현재 설치는 그렇게 되어 있는 것 같습니다.
로그인 시 실행되도록 서비스가 설정되어 있는지 알 수 없습니다.그래서 나는 했다.
brew services stop mongodb
brew services start mongodb
재부팅 후에 다시 시작하길 바랐어요그리고 실제로도 그랬다.사실 첫 번째 설치 후에 해야 할 일은
brew services start mongodb
서비스가 시작되고 재부팅 후 재시작됩니다.
루트 액세스 권한이 없는 디렉토리를 작성하려고 합니다.
mongodb를 테스트하기 위해 사용자 디렉토리에서 다음과 같은 디렉토리를 사용합니다.
cd
mkdir -p temp/
mongod --dbpath .
그러면 현재 작업 디렉토리에서 temp/에 mongo 데이터베이스가 생성됩니다.
윈도 매니저로 /data/db 폴더를 생성하여 동일한 문제를 해결했습니다.처음에 단말기에서 시도했는데 루트 디렉토리에 폴더를 작성하려면 sudo를 사용해야 했습니다.
Finder를 사용하여 root 디렉토리로 이동하고 'New Folder'를 사용하여 새 폴더를 만들었습니다.나한테는 완전히 통했어.
메모: OSX를 사용하고 있습니다.
루트에 디렉토리 작성
sudo mkdir -p /data/db
소유자를 변경합니다.
sudo chown -R $USER /data
가도 돼!
mongod
''를 사용하는 대신.sudo mongod
패스워드를 에서는 패스워드를 사용해야 sudo mongod
일반 사용자에게 권한을 부여하지 마십시오.
/data/db...를 작성해야 합니다.루트(즉, /)에 /data/라고 하는 디렉토리와 /db/...라고 하는 서브폴더입니다.
MacOS에서 sudo를 사용하여 루트 dir에 direcotry를 만들어야 하므로 sudo를 사용하면 관리자 권한으로 명령을 실행할 수 있습니다.
그러니 대신 이걸 실행해봐...
$ sudo mkdir -p /data/db
패스워드를 입력하도록 요구됩니다.패스워드는 시스템 설정을 변경하기 위해 사용하는 것과 같은 패스워드(예를 들어 시스템프리퍼런스의 내용을 변경하려고 할 때 표시되는 작은 대화상자)입니다.또, 로그인에 사용하는 것과 같은 경우가 있습니다.
시 Mongodbmongod
~/data/db
디바이스 루트 폴더에 있는 db 경로로 폴더를 지정합니다.
~/data
(「」를 해 주세요.mkdir ~/data
폴더는 「」라고 입력합니다.ls
다음 한 번 확인해보세요.pwd
합니다/Users/username/data
다음 이 경로 "D"를 .sudo mongod --dbpath=/Users/username/data
때도 mongod
간단한 메모:
먼저 권한을 변경하지 않고 mongod를 실행하려고 하면 /data/db 디렉토리에 mongod.lock 파일(및 기타 파일)이 있을 수 있습니다.$USER에 액세스하기 위해 /data/db 디렉토리에 대한 권한을 변경한 후에도 "Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied" 오류가 계속 표시됩니다.ls - al / data / db 를 실행하면 개개의 파일에 대한 권한이 $USER 가 아닌 root 로 설정되어 있는 것을 알 수 있습니다.mongod.lock 파일과 다른 파일도 삭제해야 합니다.그런 다음 mongod를 다시 실행하면 모든 것이 작동하며 ls -al을 다시 실행하여 파일 권한이 디렉토리 권한과 일치하는지 확인할 수 있습니다.
mongodb를 시작하려고 했을 때 다음과 같은 오류가 계속 발생하였습니다.
"shutting down with code:100"
다음 명령을 사용하고 있었습니다.
./mongod --dbpath=~/mongo-data
수정은 "=" 표시가 필요하지 않아서 오류가 발생했다는 것입니다.그래서 나는 했다.
./mongod --dbpath ~/mongo-data
에러로 인해 이것이 문제라는 것을 알 수 없기 때문에, 이것을 폐기하고 싶다고 생각하고 있습니다.도움이 되는지 보기 위해 ~/mongo 데이터 디렉토리의 내용을 거의 삭제했습니다.CLI arg가 "=" 기호를 사용하지 않는 경우가 있다는 것을 기억하니 다행입니다.
지금까지도 mongod 명령어를 시작하려면 /data/db 폴더를 만들어야 한다고 생각했습니다.
하지만 최근에 service 명령어로 mongod를 시작하려고 했는데, 그것은 나에게 효과가 있었고 /data/db 디렉토리를 만들 필요가 없었습니다.
service mongod start
mongod 상태를 확인하려면 다음 명령을 실행할 수 있습니다.
service mongod status
이 솔루션은 문제를 해결합니다.
디렉토리 작성:
sudo mkdir -p /data / db
그러면 db라는 이름의 디렉토리가 생성되고 명령어로 시작하려고 합니다.
스도몽고드
mongod 부팅 시 또 다른 오류나 문제가 발생할 경우 다음과 같은 문제가 발생할 수 있습니다.
수신기를 설정하지 못했습니다.Socket Exception:이미 사용 중인 주소 만약 당신이 mongod의 실행 프로세스를 중지해야 하는 것 외에 다른 오류를 발견한다면 단말기에 다음과 같이 입력합니다.
ps ax | grep mongod
sudo kill ps_number
mongod 실행 포트를 찾아서 프로세스를 종료합니다.다른 방법은 mongod를 시작할 때 specefic 포트를 만드는 것입니다.
sudo mongod --port 27018
MongoDB 4.4부터 MongoDB Database Tools는 MongoDB Server와 별도로 출시되었습니다.
다운로드가 필요합니다.https://www.mongodb.com/try/download/database-tools?tck=docs_databasetools
모든 파일을 복사하여/usr/bin
모든 명령줄을 사용할 수 있게 됩니다.
지정할 수 있는 사용자 ID를 보려면 터미널에 "id"를 입력한 다음 간단히 입력하십시오.
"sudo chown -R idname /data/db"
난 성공했어!이것으로 문제가 해결되기를 바랍니다.
보다 최신 버전의 MongoDB에서는 3.2.10이 있으며 디폴트로 저장됩니다.
/var/lib/mongodb
틸로는 지금까지 나에게 효과가 있었던 답을 가지고 있다.
sudo chown -R 126:135 /data/db
다음을 사용해야 했습니다.
sudo chown -R $USER /data/db
툴 패키지를 재인스톨 하면, Windows 10 디바이스에서도 같은 에러가 발생.
initAndListen 예외:NonExistentPath: 데이터 디렉토리 C:\data\db\를 찾을 수 없습니다.종료합니다.
솔루션 Linux 시스템에 대한 설명과 유사: 폴더를 만드는 것만으로mongod.exe
server . ( mongoDB " )
Windows 디바이스에서 같은 검색어를 사용할 수 있는 사람을 위해 남겨두면 어떨까 생각했습니다.
제가 개척한 이 문제를 만드는 정말 멍청한 방법이 있습니다.
1) 잠시 mongo 설치를 그대로 두었을 때 2) 서버가 실행되고 있지 않을 때 3) 부팅을 시도하지만 이번에는 sudo를 사용하지 마십시오4) mongo가 su home dir가 아닌 사용자 home dir를 검색하기 때문에 data/db/를 찾을 수 없습니다.
네, 정말 바보같지만, 만약 당신이 시스템에 접속한 지 오래되었다면, 그것은 당신을 넘어뜨릴 수 있습니다.
간단한 답변: 동일한 홈 디렉토리에서 mongo를 실행해야 합니다.
Linux 인스턴스에 충분한 디스크 공간이 있는지 확인하십시오.
언급URL : https://stackoverflow.com/questions/7948789/mongod-complains-that-there-is-no-data-db-folder
'programing' 카테고리의 다른 글
ID 일치를 기반으로 한 테이블에서 다른 테이블로의 SQL 업데이트 (0) | 2023.04.07 |
---|---|
표 변수에 색인 작성 (0) | 2023.04.07 |
반응성이 좋은 디자인으로 구글 광고 크기를 조정할 수 있는 방법이 있나요? (0) | 2023.04.02 |
WordPress - 줄 바꿈 없이 텍스트 영역에서 여러 줄 텍스트를 삭제하는 방법 (0) | 2023.04.02 |
분류법별로 사용자 지정 게시 유형에 대한 영구 링크 정의 (0) | 2023.04.02 |