Garaku49
@Garaku49 (我 楽)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

mongodが起動できない

Discussion

Closed

環境

centos7
mongod --version 4.4.4

経緯

Mongodbでサーバーを作成するにあたり、ポートを変更しといたほうがいいよというおすすめがあったため、
mongod --port 11111 とかいう風に変更しようと試みたところからエラーが発生。その後、いろいろとエラー内容を見て、修正を試みたところ

,"s":"F",  "c":"STORAGE",  "id":50922,   "ctx":"initandlisten","msg":"An incomplete repair has been detected! This is likely because a repair operation unexpectedly failed before completing. MongoDB will not start up again without --repair."

という絶望感溢れたFがログに現れたため、この通り、

mongod --repair

をしてみました。

わからないところ

現れたエラー内容は以下の通り

"s":"E",  "c":"STORAGE",  "id":20557,   "ctx":"initandlisten","msg":"DBException in initAndListen, terminating","attr":{"error":"NonExistentPath: Data directory /data/db not found. Create the missing directory or specify another path using (1) the --dbpath command line option, or (2) by adding the 'storage.dbPath' option in the configuration file."

つまりは/data/dbが見つからないからなんとかしろというもの

そもそも

(2)に提案されている、構成ファイルのstorage.dbPathに追加してみれば?と言われてはいるものの、初めからあるぜ?
以下、mongod.conf.構成ファイルの内容

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# Where and how to store data.
storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true
#  engine:
#  wiredTiger:

# how the process runs
processManagement:
  # fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.

*secureがないのは、構成ファイルを構成し直そうと奮闘した結果です。
それはともかく、storage.dbPathは以上のように書かれていると思います。
/var/lib/mongoのディレクトリはちゃんと存在しているのを確認しています。

試したこと

(1)を試してみた

$mongod --dbpath /var/lib/mongo

"s":"F",  "c":"STORAGE",  "id":50922,   "ctx":"initandlisten","msg":"An incomplete repair has been detected! This is likely because a repair operation unexpectedly failed before completing. MongoDB will not start up again without --repair."
"s":"F",  "c":"-",        "id":23091,   "ctx":"initandlisten","msg":"Fatal assertion","attr":{"msgid":50922,"file":"src/mongo/db/storage/storage_engine_init.cpp","line":86}
"s":"F",  "c":"-",        "id":23092,   "ctx":"initandlisten","msg":"\n\n***aborting after fassert() failure\n\n"

結果は絶望感あふれるFが現れた。

/data/dbを作成してみた

$mongod --repair

"s":"W",  "c":"CONTROL",  "id":22120,   "ctx":"initandlisten","msg":"Access control is not enabled for the database. Read and write access to data and configuration is unrestricted","tags":["startupWarnings"]
"s":"W",  "c":"CONTROL",  "id":22138,   "ctx":"initandlisten","msg":"You are running this process as the root user, which is not recommended","tags":["startupWarnings"]
"s":"W",  "c":"CONTROL",  "id":22140,   "ctx":"initandlisten","msg":"This server is bound to localhost. Remote systems will be unable to connect to this server. Start the server with --bind_ip <address> to specify which IP addresses it should serve responses from, or with --bind_ip_all to bind to all interfaces. If this behavior is desired, start the server with --bind_ip 127.0.0.1 to disable this warning","tags":["startupWarnings"]

Warningが発生
内容はデータベースへのアクセス権がありませんというもの。
rootで実行するべきではないというもの。
ローカルでバインドされているためリモートでは接続できないというもの。
SakuraVPSを利用しているため、リモートで接続できないのは困ったなぁ

ともかく、実行できた時のことは後に考えるとして、まずはアクセス権
/data/db
のディレクトリの両方とりあえずアクセス権を確認

$cd /
$ls -l | grep data
drwxr-xr-x    3 root root  4096 May 12 20:56 data
$chown mongod data
$ls -l | grep data
drwxr-xr-x    3 mongod root  4096 May 12 20:56 data
$cd data
$ls -l | grep db
drwxr-xr-x 3 root root 4096 May 12 20:56 db
$chown mongod db
$mongod
"s":"W",  "c":"CONTROL",  "id":22120,   "ctx":"initandlisten","msg":"Access control is not enabled for the database. Read and write access to data and configuration is unrestricted","tags":["startupWarnings"]

以上のようなワーニングが。んー?んー。んー?
まだ、アクセス権がないー?

わかりません

どなたかなにか分かれば助けてください!お願いします!

0

Your answer might help someone💌