OSXへのMongoDBのインストールを終了し、Sudo mkdir -p /data/db
を使用してディレクトリ構造をセットアップしました。
ユーザーアカウントからmongod
を実行しようとすると、ユーザーアカウントに/data/db
への読み取り/書き込み権限がないことを示すエラーが返されます。
/data/db
のアカウントに適切な読み取り/書き込み権限を設定するにはどうすればよいですか?
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
Sudo chmod 777 /data/db/
Macで動作するはずです。このcmdを実行する前に、アクセス許可は次のようになります
drwxr-xr-x X User wheel Date /data/db
cmdを実行した後
drwxrwxrwx X User wheel Date /data/db
これは私のために働いたものです。 Macを使用していますが、Windowsを使用している場合は試すことができます。
Sudo chmod 777 /data/db
ユーザーには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 /
これらの提案はいずれも正しいものではありません。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
与えられた答えはどれも私にとってはうまくいきませんでした。最終的には、自分のOSユーザーをルートユーザーとして構成し、手動でdbフォルダーに移動し、右クリックして情報を表示し、読み取りおよび書き込み権限を追加しました。