web-dev-qa-db-ja.com

Mongodbフォルダーの読み取り/書き込み権限を設定する

OSXへのMongoDBのインストールを終了し、Sudo mkdir -p /data/dbを使用してディレクトリ構造をセットアップしました。

ユーザーアカウントからmongodを実行しようとすると、ユーザーアカウントに/data/dbへの読み取り/書き込み権限がないことを示すエラーが返されます。

/data/dbのアカウントに適切な読み取り/書き込み権限を設定するにはどうすればよいですか?

30
Zoltan King

mongodを実行しているユーザーアカウントに適切なディレクトリ権限があることを確認してください。次のように設定されている権限を確認できます。

ls -ld /data/db/

適切に設定されていれば、次のようになります。

drwxr-xr-x X user wheel XXX Date Time /data/db/

パーミッションが正しく設定されていない場合、mongodを実行しようとすると、これに似たエラーが表示される可能性があります

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

アクセス許可を必要に応じて設定するには、次のコマンドを実行できます

Sudo chmod 0755 /data/db && Sudo chown $USER /data/db
73
davidcondrey
Sudo chmod 777 /data/db/ 

Macで動作するはずです。このcmdを実行する前に、アクセス許可は次のようになります

drwxr-xr-x  X User  wheel  Date /data/db

cmdを実行した後

drwxrwxrwx  X User  wheel  Date /data/db
9
getSantsoh

これは私のために働いたものです。 Macを使用していますが、Windowsを使用している場合は試すことができます。

Sudo chmod 777 /data/db
5
Tim Anishere

ユーザーには3つのカテゴリがあります。所有者、グループ内のユーザー、その他すべてのユーザーです。 chmod 777 /path/to/fileは全員にファイルの読み取り/書き込みを許可しますが、chmod 775 /path/to/fileは所有者/グループのみにファイルの読み取り/書き込みを許可します。 Webサーバーを開発している場合は、必ずchmod 775 /path/to/fileを使用してください。

特に、他の数字ではなく777、775などが使用されている理由の背後にある推論のためのいくつかの有用な読み物: https://www.maketecheasier.com/file-permissions-what-does-chmod-777-means /

3
aaron

これらの提案はいずれも正しいものではありません。mongodb-org-3.4.16-1.el7.x86_64には何か他の問題があります。カスタムDBパスで開始することはできません。

[root@localhost vagrant]# chmod 777 /data/ /data/mongodb
[root@localhost vagrant]# chown mongod:mongod /data/ /data/mongodb
[root@localhost vagrant]# ls -lad /data/mongodb/
drwxrwxrwx. 2 mongod mongod 6 Jul 11 15:24 /data/mongodb/
[root@localhost vagrant]#  systemctl start mongod
Job for mongod.service failed because the control process exited with error code. See "systemctl status mongod.service" and "journalctl -xe" for details.
[root@localhost vagrant]# stat /data/mongodb^C
[root@localhost vagrant]# !tail
tail /var/log/mongodb/mongod.log
2018-07-11T15:39:10.786+0000 I STORAGE  [initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/mongodb, terminating
2018-07-11T15:39:10.786+0000 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2018-07-11T15:39:10.786+0000 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2018-07-11T15:39:10.786+0000 I CONTROL  [initandlisten] now exiting
2018-07-11T15:39:10.786+0000 I CONTROL  [initandlisten] shutting down with code:100
[root@localhost vagrant]# rpm -qa | grep mongo
mongodb-org-tools-3.4.16-1.el7.x86_64
mongodb-org-Shell-3.4.16-1.el7.x86_64
mongodb-org-server-3.4.16-1.el7.x86_64
mongodb-org-mongos-3.4.16-1.el7.x86_64
mongodb-org-3.4.16-1.el7.x86_64
1
b__

与えられた答えはどれも私にとってはうまくいきませんでした。最終的には、自分のOSユーザーをルートユーザーとして構成し、手動でdbフォルダーに移動し、右クリックして情報を表示し、読み取りおよび書き込み権限を追加しました。

0
suzmas