私はUbuntu 16.04.2 LTS (GNU/Linux 4.4.0-22-generic x86_64)
VPSでMongoDBをセットアップしようとしていましたが、いくつかの問題が発生しています。サーバーでroot
アクセス権を持つユーザーとして実行していますが、root
アカウント自体は使用していません。
他のユーザーを追加できるようにadmin
データベースでdb.createUser()
を実行しているときに問題に気付き始め、次のエラーが発生しました:not authorized to execute command
それで私は次に、ウェブサイトで提供されているチュートリアルを使用してアンインストールと再インストールに進みました: https://docs.mongodb.com/v3.2/tutorial/install-mongodb-on-ubuntu/
ここで、ステージにいるとき2 MongoDBが正常に開始したことを確認するRun MongoDB Community Editionセクションで、ファイル/var/log/mongodb/mongod.log
からの出力を見て、以下:
2017-04-14T14:23:09.309+0200 I CONTROL [main] ***** SERVER RESTARTED *****
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] MongoDB starting : pid=9691 port=27017 dbpath=/var/lib/mongodb 64-bit Host=vps338741
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] db version v3.4.3
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] git version: f07437fb5a6cca07c10bafa78365456eb1d6d5e1
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] allocator: tcmalloc
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] modules: none
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] build environment:
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] distmod: ubuntu1604
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] distarch: x86_64
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] target_Arch: x86_64
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log", quiet: true } }
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten]
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=464M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2017-04-14T14:23:09.366+0200 E STORAGE [initandlisten] WiredTiger error (2) [1492172589:366629][9691:0x7f1755946cc0], file:WiredTiger.wt, connection: /var/lib/mongodb/WiredTiger.wt: handle-open: open: No such file or directory
2017-04-14T14:23:09.367+0200 I - [initandlisten] Assertion: 28595:2: No such file or directory src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 267
2017-04-14T14:23:09.367+0200 I STORAGE [initandlisten] exception in initAndListen: 28595 2: No such file or directory, terminating
2017-04-14T14:23:09.367+0200 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2017-04-14T14:23:09.367+0200 I NETWORK [initandlisten] removing socket file: /tmp/mongodb-27017.sock
2017-04-14T14:23:09.367+0200 I NETWORK [initandlisten] shutdown: going to flush diaglog...
2017-04-14T14:23:09.367+0200 I CONTROL [initandlisten] now exiting
2017-04-14T14:23:09.367+0200 I CONTROL [initandlisten] shutting down with code:100
私は見回しましたが、同じエラーではありません ここにあります 。これは、私が持っている/data/db
フォルダがないという事実に関係しているためです。そのログから、次の行と関係があることがわかります。
2017-04-14T14:23:09.366+0200 E STORAGE [initandlisten] WiredTiger error (2) [1492172589:366629][9691:0x7f1755946cc0], file:WiredTiger.wt, connection: /var/lib/mongodb/WiredTiger.wt: handle-open: open: No such file or directory
/var/lib/mongodb
に移動してls -l
を実行すると、次のような結果になります。
drwxr-xr-x 2 mongodb mongodb 4096 Apr 14 14:10 journal
-rw-r--r-- 1 mongodb mongodb 0 Apr 14 14:02 mongod.lock
-rw-r--r-- 1 mongodb mongodb 0 Apr 14 14:10 WiredTiger
-rw-r--r-- 1 mongodb mongodb 21 Apr 14 14:10 WiredTiger.lock
-rw-r--r-- 1 mongodb mongodb 1004 Apr 14 14:10 WiredTiger.turtle
しかし、他の場所ではこの問題が見られないため、手動でそのファイルを作成する必要があるかどうかはわかりません。私はmongodb
ユーザーにもこれらのファイルに対する権限があることを確認しました この質問への回答で ですが、まだ運がありません。
私は何をすべきかについて本当に途方に暮れています、これがそれを機能させる私の5回目の試みであるので、どんな助けも非常に高く評価されます!
ありがとう!
これはMongoDBの既知のバグです。 report を確認してください
あなたの問題は、一般的にファイルが欠落しているということではなく、完全にシャットダウンした後に再起動するとファイルが欠落することです。問題は/data/db
ディレクトリとは関係ありませんが、再起動後に見つからないWiredTiger.wt
ファイルに関係しています。
Oct 1 20:00:44 alpha mongod.27017 [1074]:[initandlisten] WiredTiger(2)[1443729644:306783] [1074:0x7fdba8fd4bc0]、file:WiredTiger.wt、connection:/data/db/WiredTiger.wt:そのようなファイル、又はディレクトリはありません
バグレポートは同じことについて語っています。
試してみてください:
設定ファイルでWiredTigerを無効にしてみることをお勧めします。
UPDATE:WiredTiger
を無効にするには、mongo設定ファイルのstorage.engine
オプションを変更する必要があります。デフォルトでは、mongodはWiredTiger
を使用しますが、 InMemory
[〜#〜]リンク[〜#〜]
mkdir -p /data/db
を作成した場合は、次のコマンドでサーバーを起動する必要がある可能性があります:Sudo mongod
macOS/OSX: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/
試してください:
須藤サービスmongod開始;
次に、mongodbを実行します。
モンゴ
このコマンドは私を助けました:
mongod --dbpath /data/db --repair
ディレクトリを作る
Sudo mkdir/data/db
ディレクトリへのアクセスを提供する
Sudo chown -R $ USER/data/db
次に実行します
モンゴッド
ポートがすでに停止中のmongodを使用している場合、バックグラウンドで実行されている可能性があります
須藤サービスモンゴッドストップ
最終行が
ポート27017で接続を待機しています
その後、mongodは働いています
私にとって「答え」は次のコマンドを実行することでした(service mongod start
およびmongod
だけが失敗しました)
Sudo mongod --fork --port 27017 --replSet admin --logpath /data/log/mongo.log
有線タイガーをオフにする必要はありませんでした