[解決済み】Mongod が /data/db フォルダがないと文句を言う問題
質問
今日初めて新しいMacを使います。mongodb.orgのget startedガイドに従って、/data/dbディレクトリを作成するステップまでやっています。
ターミナルを開いて、「ホームディレクトリ」と呼ばれる場所にいると思います。「ls」を実行すると、デスクトップアプリケーション、映画、音楽、写真、ドキュメント、ライブラリのフォルダが表示されます。
そこで、私は
mkdir -p /data/db
をクリックすると、permission deniedと表示されます。30分ほどいろいろ試してみて、ようやく:
{コード
で、lsすると、dataのディレクトリとその中にdbのフォルダが存在します。
その後、mongodを起動すると、data/dbが見つからないと文句を言われる。
何か間違ったことをしたのでしょうか?
を行った今。
mkdir -p data/db
しかし、dbディレクトリの中には何もなく、今mongodを実行すると
sudo mkdir -p /data/db
EDIT のエラーメッセージが表示されます。
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
皆さん、ありがとうございました。
解決するには?
間違った場所にディレクトリを作成した
/しかし、あなたが作成した「data/db」(先頭の「/」なし)は、おそらく「/root」ホームディレクトリなど、別のディレクトリのすぐ下に作成されたものです。
このディレクトリをルートとして作成する必要があります
のどちらかを使用する必要があります。
sudo chown mongod:mongod /data/db
chown: mongod: Invalid argument
は、例えば
sudo
または、以下のようにする必要があります。
sudo mkdir -p /data/db
でスーパーユーザーになり、ディレクトリを作成します。
su -
注
MongoDBにはデータディレクトリを別の場所に作るオプションもありますが、一般的にはあまり良いアイデアではありません。常に手動でdb-pathを指定しなければならないので、DBの復旧などが若干複雑になるだけだからです。 私はそれを行うことをお勧めしません。
編集する
エラーメッセージは "Unable to create/open lock file: /data/db/mongod.lock errno:13 パーミッションが拒否されました" . 作成したディレクトリのパーミッションと所有権が正しく設定されていないようです --。 MongoDB プロセスを実行しているユーザーによって書き込み可能である必要があります。
data/db/」ディレクトリのパーミッションと所有権を確認するには、次のようにします。 (パーミッションと所有者はこのように表示されるはずです)
mkdir -p /data/db
左側の「drwxr-xr-x」は、User、Group、Othersのパーミッションを示しています。 'mongod mongod'は、そのディレクトリが誰のもので、そのディレクトリがどのグループに属しているかを示しています。 この場合、どちらも'mongod'と呼ばれます。
もし、'/data/db' ディレクトリに上記のパーミッションと所有権がない場合は、次のようにしてください。 :
まず、mongoのユーザーがどのようなユーザーとグループを持っているかを確認します。
プレ$ ls -ld /data/db/
drwxr-xr-x 4 mongod mongod 4096 Oct 26 10:31 /data/db/
デーモンなので、/etc/passwd に mongod のエントリがあるはずです。
{コード
また、以下のようにuser-nameとgroup-nameを使用することができます。 (これらは /etc/passwd と /etc/group にあります )
# grep mongo /etc/passwd
mongod:x:498:496:mongod:/var/lib/mongo:/bin/false
これでうまくいくはずです。
下のコメントでは、こんな使い方をしている人もいました。
sudo chmod 0755 /data/db
sudo chown -R 498:496 /data/db # using the user-id , group-id
または
プレsudo chown -R mongod:mongod /data/db
デメリットは、$USERがログインシェルを持つアカウントであることです。 デーモンはセキュリティ上の理由から理想的にはシェルを持つべきではありません。これが、上記のパスワードファイルの grep で /bin/false が表示される理由です。
ディレクトリのパーミッションの意味をより深く理解するために、こちらをご確認ください。
http://www.perlfect.com/articles/chmod.shtml
また、Googleで検索したチュートリアルの一つをチェックしてみてください。"初心者のためのUNIX"
関連
-
[解決済み】なぜこのマージが必要なのか、特に更新された上流をトピックブランチにマージする場合、コミットメッセージを入力してください。
-
[解決済み】SSH -L 接続は成功したが、localhost のポートフォワーディングが機能しない "channel 3: open failed: connect failed: 接続が拒否されました"
-
[解決済み] ipykernel_launcher という名前のモジュールがありません。
-
[解決済み] -bash: matlab: コマンドが見つかりません。
-
[解決済み] VBAでMacのControl + Breakに相当
-
[解決済み] Angular CLI ng コマンドが Mac Os で見つかりません。
-
[解決済み] クロームでのSVGバンディング
-
[解決済み] インストール後、Gulpコマンドが見つからない
-
[解決済み] macOS v11 (Big Sur)でパーミッションの関係でアプリを実行できない。
-
[解決済み] サーバー127.0.0.1:27017に接続できませんでした。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] -bash: export: =': 有効な識別子ではありません
-
[解決済み】MongoDBのデータ/DBが見つからない
-
Macシステムでbrew install nvmを使用すると、コマンドが見つからない問題の後にnvmがインストールされる問題が解決されました。
-
[解決済み] ターミナルからmvim(MacVim)を実行するには?
-
[解決済み] rootでrsyncを実行中。操作は許可されていません
-
[解決済み] MacVimと通常のVimの違いは何ですか?
-
[解決済み] ファイルがリンク先のアーキテクチャではない、サポートされていないファイル形式でビルドされた (x86_64)
-
[解決済み] MacOsでdockerを簡単にインストール、アンインストールする方法
-
[解決済み] zsh で $PATH 変数のアサーションをどこに置くか?
-
[解決済み] psql: コマンドが見つかりません Mac