source

잠금 파일을 만들거나 열 수 없습니다. /data/mongod.lock errno:13 권한 거부됨

gigabyte 2023. 2. 14. 21:27
반응형

잠금 파일을 만들거나 열 수 없습니다. /data/mongod.lock errno:13 권한 거부됨

mongo가 ec2에 마운트된 드라이브를 사용하도록 하려면 어떻게 해야 합니까?정말 이해가 안 돼요.ec2에서 드라이브를 루트로 포맷하고 루트로 시작했는데 액세스할 수 없는 건가요?ubuntu 12.04로 실행하고 있습니다.다른 mongo는 실행되고 있지 않다.

mongo가 /data에 'db' dir를 작성했습니다.예를 들어 /data/db

cd /
ls -al
drwxr-xr-x  4 root root  4096 Mar  5 16:28 data

cd /data
ls -al
total 28
drwxr-xr-x  4 root root  4096 Mar  5 16:28 .
drwxr-xr-x 24 root root  4096 Mar  5 16:28 ..
drwxr-xr-x  2 root root  4096 Mar  5 16:28 db
drwx------  2 root root 16384 Mar  5 16:20 lost+found


sudo mkfs.ext3 /dev/xvdh
sudo mkdir /data
sudo su - -c 'echo "/dev/xvdh %s auto noatime 0 0" | sudo tee -a /etc/fstab'
sudo mount /data

sudo service mongodb start
mongodb start/running, process 17169

sudo ps -ef | grep mongod
ubuntu   15763 15634  0 16:32 pts/2    00:00:00 tail -f mongodb.log
ubuntu   18049 15766  0 16:43 pts/3    00:00:00 grep --color=auto mongod


Tue Mar  5 16:33:15 [initandlisten] MongoDB starting : pid=15890 port=27017 dbpath=/data 64-bit host=aws-mongo-server-east-staging-20130305161917
Tue Mar  5 16:33:15 [initandlisten] db version v2.2.3, pdfile version 4.5
Tue Mar  5 16:33:15 [initandlisten] git version: f570771a5d8a3846eb7586eaffcf4c2f4a96bf08
Tue Mar  5 16:33:15 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Tue Mar  5 16:33:15 [initandlisten] options: { bind_ip: "10.157.60.27", config: "/etc/mongodb.conf", dbpath: "/data", logappend: "true", logpath: "/var/log/mongodb/mongodb.log", replSet: "heythat" }
Tue Mar  5 16:33:15 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
Tue Mar  5 16:33:15 dbexit: 
Tue Mar  5 16:33:15 [initandlisten] shutdown: going to close listening sockets...
Tue Mar  5 16:33:15 [initandlisten] shutdown: going to flush diaglog...
Tue Mar  5 16:33:15 [initandlisten] shutdown: going to close sockets...
Tue Mar  5 16:33:15 [initandlisten] shutdown: waiting for fs preallocator...
Tue Mar  5 16:33:15 [initandlisten] shutdown: lock for final commit...
Tue Mar  5 16:33:15 [initandlisten] shutdown: final commit...
Tue Mar  5 16:33:15 [initandlisten] shutdown: closing all files...
Tue Mar  5 16:33:15 [initandlisten] closeAllFiles() finished
Tue Mar  5 16:33:15 [initandlisten] shutdown: removing fs lock...
Tue Mar  5 16:33:15 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Tue Mar  5 16:33:15 dbexit: really exiting now

아래는 잠금 파일을 삭제했을 때 재시작하는 경우입니다.

Tue Mar  5 16:59:15 [initandlisten] MongoDB starting : pid=21091 port=27017 dbpath=/data 64-bit host=aws-mongo-server-east-staging-20130305161917
Tue Mar  5 16:59:15 [initandlisten] db version v2.2.3, pdfile version 4.5
Tue Mar  5 16:59:15 [initandlisten] git version: f570771a5d8a3846eb7586eaffcf4c2f4a96bf08
Tue Mar  5 16:59:15 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Tue Mar  5 16:59:15 [initandlisten] options: { bind_ip: "10.157.60.27", config: "/etc/mongodb.conf", dbpath: "/data", logappend: "true", logpath: "/var/log/mongodb/mongodb.log", replSet: "heythat" }
Tue Mar  5 16:59:15 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
Tue Mar  5 16:59:15 dbexit: 
Tue Mar  5 16:59:15 [initandlisten] shutdown: going to close listening sockets...
Tue Mar  5 16:59:15 [initandlisten] shutdown: going to flush diaglog...
Tue Mar  5 16:59:15 [initandlisten] shutdown: going to close sockets...
Tue Mar  5 16:59:15 [initandlisten] shutdown: waiting for fs preallocator...
Tue Mar  5 16:59:15 [initandlisten] shutdown: lock for final commit...
Tue Mar  5 16:59:15 [initandlisten] shutdown: final commit...
Tue Mar  5 16:59:15 [initandlisten] shutdown: closing all files...
Tue Mar  5 16:59:15 [initandlisten] closeAllFiles() finished
Tue Mar  5 16:59:15 [initandlisten] shutdown: removing fs lock...
Tue Mar  5 16:59:15 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Tue Mar  5 16:59:15 dbexit: really exiting now

문제를 해결하려면 다음 방법을 사용합니다.

sudo chown -R mongodb:mongodb /data/db

Ubuntu ec2 인스턴스에서도 같은 문제가 발생했습니다.나는 7페이지의 아마존 기사를 팔로우하고 있었다.

http://d36cz9buwru1tt.cloudfront.net/AWS_NoSQL_MongoDB.pdf

Mongodb의 /etc/mongodb.conf was was was was was was was was로 설정되었습니다./var/lib/mongodb( 이 ( ( ( ( ( ( ( 。/data/db(EBS) "errno:13 Permission denied" 입니다.

  1. 뛰었습니다.sudo service mongodb stop.
  2. 나는 리리나 then then를 사용했다.ls -la및 가 Mongodb에 합니다./var/lib/mongodb 경로와 ('')를 했습니다./data/db path와 ('new path')의 조합chown ★★★★★★★★★★★★★★★★★」chgrp ( 매칭속담sudo chown -R mongodb:mongodb /data/db)
  3. 에 제가 ''를 .etc/mongodb.conf로로 합니다./data/db했습니다./var/lib/mongodb디렉토리로 이동합니다.
  4. 뛰었습니다.sudo service mongodb start1번수 없습니다.27017은 접속할 수 없습니다.
  5. 에 1을 확인합니다./data/db( 볼륨)및local.0 EBS Mongo) mongod.lock, local.ns, local.0 Mongo.ns.하지 않는 경우sudo service mongodb restart잠시 후에 확인해 주세요.

이거 가지고 한 시간 넘게 보냈어.그룹을 변경하고 오래된 파일을 삭제할 필요는 없을지도 모르지만, 저는 그렇게 했습니다.

다음은 ebs 볼륨을 ec2 인스턴스에 마운트하는 방법에 대한 훌륭한 비디오입니다.

http://www.youtube.com/watch?v=gBII3o3BofU

내 경우(AWS EC2 인스턴스, Ubuntu)는 다음을 지원했습니다.

$ sudo mkdir -p /data/db/
$ sudo chown `USERNAME` /data/db

그 후로는 모든 게 잘 풀렸어요.

'만./data/db더입니니다다

「」라고 입력합니다.sudo chown -R <USERNAME> /data/db , 치환하다<USERNAME>사용자 이름을 기준으로 합니다.

, 「 」를 입력합니다.whoami

Ubuntu 14.04를 탑재한EC2에 EBS를 탑재한mongodb를 인스톨 한 것은, 다음의 튜토리얼입니다.

http://docs.mongodb.org/ecosystem/platforms/amazon-ec2/

그러나 나는 제안된 Chown 대신 다음과 같이 했다.

sudo chown -R mongodb:mongodb /data /log /journal

문제를 해결하려면

저도 비슷한 문제가 있었습니다.실제 이유는 지난번 시도에서 이미 mongod 세션이 실행되고 있었기 때문입니다.

나는 달렸다

killall mongod

다른 건 다 예상대로 진행됐어요

killall명령어는 실제 UID를 가진 모든 프로세스에 TERM 신호를 보냅니다.이렇게 하면 몽고드의 모든 실행 중인 인스턴스가 죽어서 직접 시작할 수 있습니다.

Mac " " " " :
ls -ld /data/db/를 실행합니다.
출력은 drwrx-xr-x 20 sing wheel 680 21 Jul 05:49 /data/db/와 같아야 합니다.
여기서 sing은 주인이고 wheel은 소속된 그룹입니다.
sudo chown -R sing:휠 /data/db를 실행합니다.
mongod를 실행하다

오늘 현재 잠금파일을 작성/열려고 했습니다./data/db/mongod.lock errno:13 permission denied mongod instance가 이미 실행 중입니까?종료하고 이 문제를 해결하기 위해 위에 게시된 모든 답변을 시도했습니다.따라서 아무것도 추가되지 않았습니다.

sudo chown - R mongodb : mongodb / db

로케이션 경로에 현재 사용자 권한을 추가한 경우를 제외하고

sudo chown $USER / data / db

이게 도움이 됐으면 좋겠네요.그리고 방금 pi에 Mongo DB를 설치했습니다.건배!

저도 비슷한 문제가 있어서 위의 sudo chown 등을 사용한 오너 변경에 관한 모든 절차를 따랐습니다.변화 후에도 몽고답이 백그라운드에서 달리는 경우가 여전히 있었습니다.입니다.

ps auxw | grep mongo 

제대로 닫히지 않은 백그라운드에서 실행되는 mongo를 사용하여 다른 작업을 보여 주었습니다.실행 중인 모든 사람들을 죽이고 서버를 시작할 수 있었어요

mongodb.lock 파일을 삭제하는 것은 제 경우는 문제가 되지 않았습니다.이렇게 하면 사용 중인 포트에 대한 오류가 나타납니다.[ initandlisten ] listen ( ) : bind ( ) failed errno : 98 소켓에 이미 사용 중인 주소: 0.0.0:27017여기서 또 다른 해결책을 찾았습니다.mongodb 로컬서버를 기동할 수 없습니다.프로세스를 종료하는 순서는 다음과 같습니다.

  1. netstat에서 mongodb 포트를 실행하고 있는 프로세스를 확인합니다(27017).

    sudo netstat -tulpn | grep :27017

    출력: tcp 0 0.0.0:27017 0.0.0.0:* Listen 1412/mongod

  2. 적절한 프로세스를 정지합니다.

    sudo kill 1412로 바꿉니다1412는 1단계에서 찾은 프로세스 ID로 바꿉니다.)

그리고 나는 성공적으로 mongodb를 다시 시작할 수 있었다.내 것은 여전히 부적절한 셧다운으로 가동되고 있었던 것 같다.

작업 관리자를 사용하여 윈도우즈에서 이 오류가 발생하는 경우 실행 중인 "mongod.exe" 인스턴스를 종료하십시오.그것이 완료되면 mongo를 완전히 삭제합니다.파일을 잠그고 mongod.exe를 실행합니다.그 후에는 완벽하게 작동해야 합니다.

나의 mongo(3.2.9)는 Ubuntu에 설치되었으며 로그 파일에는 다음과 같은 행이 있습니다.

2016-09-28T11:32:07.821+0100 E STORAGE  [initandlisten] WiredTiger (13) [1475058727:821829][6785:0x7fa9684ecc80], file:WiredTiger.wt, connection: /var/lib/mongodb/WiredTiger.turtle: handle-open: open: Permission denied 
2016-09-28T11:32:07.822+0100 I -        [initandlisten] Assertion: 28595:13: Permission denied 
2016-09-28T11:32:07.822+0100 I STORAGE  [initandlisten] exception in initAndListen: 28595 13: Permission denied, terminating

2016-09-28T11:32:07.822+0100 I CONTROL [initandlisten]dbexit : rc : 100

따라서 문제는 /var/lib/mongodb 폴더에 대한 권한에 있었습니다.

sudo chown -R mongodb:mongodb /var/lib/mongodb/
sudo chmod -R 755 /var/lib/mongodb
  • 서버를 재기동합니다.

수정했습니다만, 그것이 너무 안전하지 않을 수 있다는 것을 깨달았습니다(내 경우 내 개발 박스입니다).db와 인증의 변경에 따라 약간 효과가 있었습니다.

Mycase에서는
mongodb 버전 2.6.11에서는 기본 databse 디렉토리는 다음과 같습니다./var/lib/mongodb/

  1. $sudo chown -Rid -u/var/lib/mongodb/

  2. $sudo chown -Rid -u/var/lib/mongodb/mongod.lock

  3. $ sudo /etc/init.d/mongod stop

  4. $ sudo /etc/init.d/mongod start

Windows 10 에 mongod 커맨드를 인스톨 한 후에 실행해도 같은 문제가 발생했습니다.나는 mongodb 서비스를 중지하고 다시 시작했다.마법처럼 일하다

mongodb 서비스를 중지하는 명령어(Windows): net stop mongodb

mongodb 서버를 시작하는 명령어:mongod --dbpath PATH_TO_DATA_FOLDER

Mongo 2.2.4 인스턴스가 있는 Fedora 18에서는 SELinux를 비활성화함으로써 비슷한 오류를 회피할 수 있었습니다.setenforce 0뿌리로요.

참고로 이것은 Amazon EC2 인스턴스가 아닌 기업 환경이었지만 증상은 비슷했습니다.

제 경우 로그 파일을 삭제함으로써 문제가 해결되었습니다.

sudo rm /log/mongod.log

이 오류 메시지는 특히 잠금 파일에 대한 것입니다.

exception in initAndListen: 10309 Unable to create/open lock file: 
/data/mongod.lock errno:13 Permission denied 
Is a mongod instance already running?, terminating

몽고드를 죽이고 난 후 똑같은 문제가 생겼어요 몽고드를 시작할 수 없다는 거죠

$> sudo kill `pidof mongod`

2015-08-03T05:58:41.339+0000 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/mongodbtest/replset/data/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating

잠금을 직접 삭제한 후 mongod 프로세스를 재시작할 수 있습니다.

$>  rm -rf /data/mongodbtest/replset/data/mongod.lock

이 문제를 해결하기 위해 다음과 같이 했습니다.

$sudo mkdir - p / data / db

$export PATH=/usr/local/Cellar/mongodb/3.0.7/bin:$경로.

$sudo chown - Rid -u/data/db

그리고 몽고를 시작하기 위해서...

$mongod

저도 같은 문제가 있었어요.

다음 명령어를 사용하여 selinux 상태를 허용으로 변경하여 해결했습니다.

setenforce 0

하다ls -la/var/log/mongodb 사용자 및 그룹을 확인합니다.그럼 하세요sudo chown -R user:group /data/db지금 실행sudo service mongodb start상태를 확인합니다.sudo service mongodb status

Windows 에서는 콘솔이 아미니스트레이터로 기동하고 있는 것을 확인합니다.

이런 식으로 하면 될 것 같아요. 첫 번째.

sudo chown - R mongod : mongod / data / db

그러나 때로는 이것이 유용하지 않을 수 있다.둘째, 위의 방법이 유용하지 않을 경우 이를 시도할 수 있다.

데이터베이스 스토리지 경로로 mkdir /data/db #

nohup mongod --dbpath /data/db &

또는 다음과 같이 입력합니다.

mongod --dbpath /data/db

출력 스트림을 얻다

CentOS 6.x의 경우:

sudo chown -R mongodb:mongodb <db-path> sudo service mongod restart

그리고 나는 관습을 정했다.db-path/etc/mongod.conf.

원래 질문의 명령어와 동일한 한 줄을 사용할 경우 다음 에일리어스를 지정할 수 있습니다.

mongo --eval "db.getSiblingDB('admin').shutdownServer()"

https://stackoverflow.com/a/11777141/7160782

Centos 서버 내

이거면 돼

chown -R mongod:mongod /var/lib/mongo

하여 동일한 오류를 내 디렉토리 " " " " " " " " " " " " 내 " 。journals및 " " " "mongo.lock...에, sudo lsof -i:27017 smth sm 、 「 smth 」kill <PID of the process>./mongod 하다

수정:

나도 같은 문제가 있었어, sudo 특권을 가진 mongod를 운영하는 것.Windows 환경에서 사용했기 때문에mongod데몬을 시작하려면 /data/db에 액세스하기 위한 슈퍼유저 권한이 필요한 것 같습니다.

루트 이외의 사용자에게 해당 경로에 대한 읽기 및 쓰기 권한을 부여할 수도 있습니다.위의 답변에서 가이드를 확인하세요!

당신이 mongod를 시작할 때마다 그냥 입력하세요.

sudo mongod

또는 이 문제를 영구적으로 수정하려면 /data/db 폴더에 rwx 권한을 부여하십시오.

 chmod +rwx data/

언급URL : https://stackoverflow.com/questions/15229412/unable-to-create-open-lock-file-data-mongod-lock-errno13-permission-denied

반응형