mongodbが起動できない
学校の卒業制作でmongodbを使いたいのですが、データベースを使うこと自体が初めてで解説サイトなどを一通り見たのですが、シェルの操作が出来ても起動が出来ません。
環境状況
macにvagrantでubuntuを仮想環境で立てています。
とりあえずUbuntu14.04にmongodb2.4.9はインストール出来ました。
pymongoを通して操作したいと思いvirtualenvでpython仮想にしています。
問題
MongoDBが起動出来ない
service mongod startと入力すると
mongod: unrecognized service
と表示されます。
試したこと
serviceがmongod.serviceのことなのでしょうか?
検索をしていてここに設定を書くと起動できると書いてあったのですが、うまくいきませんでした。
Ubuntu 16.04 LTSでMongoDBが起動できないとき
mogodとコマンドラインで打つと/data/dbがないというエラーが出たのですが、これは自分で作成するとサイトに書いてあったのですが一体どこに作成したら良いのでしょうか?
mongoと入力するとシェルにはアクセス出来データベースを作ったり、データを格納したり出来ます。ただブラウザーからローカルのデータベースにアクセスが出来ません。
そもそもmongo・mongodd・service mongod start
これらのコマンドの違いがわかりません。シェルに入れるということは起動出来ているという意味ではないのでしょうか?詳しい方どうか回答をお願いします。
追記
mongodと入力するとこのようなエラーも出て来ます。権限でopne lockファイルが作れないと書いてあると思うのですがsudo mongodで試しても別のエラーで起動出来ませんでした。
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
sudo mongodで実行して見たら今度はこのようなエラーが出て来ました。
1回目
Fri Sep 22 01:54:50.756 [initandlisten] ERROR: listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
Fri Sep 22 01:54:50.757 [initandlisten] ERROR: addr already in use
2回目
アドレス27017がすでに使われているみたいな感じのエラーが出ているのですがここを変えたらいいのでしょうか?これってローカルのホスト番号だと思うのですが、他にサーバーも立てていないので使ってはいないと思います。
Fri Sep 22 14:21:52.944 [initandlisten] db version v2.4.9
Fri Sep 22 14:21:52.944 [initandlisten] git version: nogitversion
Fri Sep 22 14:21:52.944 [initandlisten] build info: Linux comet 3.2.0-58-generic #88-Ubuntu SMP Tue Dec 3 17:37:58 UTC 2013 i686 BOOST_LIB_VERSION=1_54
Fri Sep 22 14:21:52.944 [initandlisten] allocator: tcmalloc
Fri Sep 22 14:21:52.944 [initandlisten] options: {}
Fri Sep 22 14:21:52.950 [initandlisten] ERROR: listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
Fri Sep 22 14:21:52.951 [initandlisten] ERROR: addr already in use
Fri Sep 22 14:21:52.952 [initandlisten] now exiting
Fri Sep 22 14:21:52.952 dbexit:
Fri Sep 22 14:21:52.953 [TTLMonitor] ERROR: Client::shutdown not called: TTLMonitor
Fri Sep 22 14:21:52.953 [websvr] ERROR: listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:28017
Fri Sep 22 14:21:52.956 [websvr] ERROR: addr already in use
Fri Sep 22 14:21:52.954 [initandlisten] shutdown: going to close listening sockets...
Fri Sep 22 14:21:52.957 [initandlisten] shutdown: going to flush diaglog...
Fri Sep 22 14:21:52.957 [initandlisten] shutdown: going to close sockets...
Fri Sep 22 14:21:52.957 [initandlisten] shutdown: waiting for fs preallocator...
Fri Sep 22 14:21:52.957 [initandlisten] shutdown: closing all files...
Fri Sep 22 14:21:52.957 [initandlisten] closeAllFiles() finished
Fri Sep 22 14:21:52.957 [initandlisten] shutdown: removing fs lock...
Fri Sep 22 14:21:52.957 dbexit: really exiting now
27017が使われているとのことで
netstat -tulpn | grep :27017で調べたら
LISTEN 1033/mongod と出て来たのですがこれはmongodbが立ち上がっている状態だと思うのですがどういうことでしょう?
ですがブラウザーからアクセスすると拒否されます。
追記2
今までubuntuの起動と同時にmongodbが起動していた見たいです。なんでかよくわからないですが
sudo killall mongodにした後にsudo mongodと実行したら
Fri Sep 22 15:30:51.327 [websvr] admin web console waiting for connections on port 28017
Fri Sep 22 15:30:51.328 [initandlisten] waiting for connections on port 27017
表示されましたですが今度は起動時に自動で立ち上がってないとvagrantでウィンドウを2つ開くとログイン?しないといけないのでそれを解決するにはどうしたらいいでしょうか?
1ウィンドウ vagrantログインでmongod起動
2ウィンドウ macのターミナルでmongo(インストールしてない)で接続出来ない
追記3
ターミナルのウィンドを2つ開きvagrantにログインする形で
1ウィンドウ vagrant起動 ログイン mongod起動
2ウィンドウ vagrant ログイン mongo接続出来ました。
今の問題はsudo mongodでしか起動出来ないので権限だけの変更の仕方を教えて欲しいです。前のやり方だとエラーが出てしまいます。
できるようになりました。以下のコマンド実行で
sudo chown ユーザ名:ユーザ名 -R /data/db/
よくわからないですがこれで出来ました。
エラー
chown mongod:mongod -R /data/db/を実行したのですがこのようなエラーが出て来ます。
chown: invalid user: ‘mongod:mongod’
mongod.confの中身を見て見たのですが何も書いてありません。
ここは自分追加して書くのでしょうか?
現在は/にdata/dbを作成した段階です。権限はrootになっています。
以下ログです
Thu Sep 21 09:38:02.621 [initandlisten] MongoDB starting : pid=1046 port=27017 dbpath=/var/lib/mongodb 32-bit host=vagrant-ubuntu-trusty-32
Thu Sep 21 09:38:02.621 [initandlisten]
Thu Sep 21 09:38:02.621 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Thu Sep 21 09:38:02.621 [initandlisten] ** 32 bit builds are limited to less than 2GB of data (or less with --journal).
Thu Sep 21 09:38:02.621 [initandlisten] ** See http://dochub.mongodb.org/core/32bit
Thu Sep 21 09:38:02.621 [initandlisten]
Thu Sep 21 09:38:02.621 [initandlisten] db version v2.4.9
Thu Sep 21 09:38:02.621 [initandlisten] git version: nogitversion
Thu Sep 21 09:38:02.621 [initandlisten] build info: Linux comet 3.2.0-58-generic #88-Ubuntu SMP Tue Dec 3 17:37:58 UTC 2013 i686 BOOST_LIB_VERSION=1_54
Thu Sep 21 09:38:02.621 [initandlisten] allocator: tcmalloc
Thu Sep 21 09:38:02.621 [initandlisten] options: { bind_ip: "127.0.0.1", config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", journal: "true", logappend: "true", logpath: "/var/log/mongodb/mongodb.log" }
Thu Sep 21 09:38:02.633 [initandlisten] journal dir=/var/lib/mongodb/journal
Thu Sep 21 09:38:02.638 [initandlisten] recover : no journal files present, no recovery needed
Thu Sep 21 09:38:02.779 [initandlisten] waiting for connections on port 27017
Thu Sep 21 09:38:02.780 [websvr] admin web console waiting for connections on port 28017
Thu Sep 21 09:52:35.540 [initandlisten] connection accepted from 127.0.0.1:32854 #1 (1 connection now open)
Thu Sep 21 09:56:40.683 [conn1] end connection 127.0.0.1:32854 (0 connections now open)
Thu Sep 21 11:25:59.486 [initandlisten] connection accepted from 127.0.0.1:32855 #2 (1 connection now open)
Thu Sep 21 11:26:15.358 [conn2] end connection 127.0.0.1:32855 (0 connections now open)
Thu Sep 21 11:27:59.390 [initandlisten] connection accepted from 127.0.0.1:32856 #3 (1 connection now open)
Thu Sep 21 11:28:42.688 [conn3] end connection 127.0.0.1:32856 (0 connections now open)
Thu Sep 21 11:44:36.889 [initandlisten] connection accepted from 127.0.0.1:32857 #4 (1 connection now open)
Thu Sep 21 11:44:40.673 [conn4] end connection 127.0.0.1:32857 (0 connections now open)