MongoDBを理解できない

データベースMongoDB

疑問点

 状態:未解決  閲覧数:968  投稿日:2014-10-22  更新日:2014-10-22
yum経由でインストール後、npm経由でもインストールしたら正常動作しなくなる
・両者は何が違うの?
・「本体」と「mongodbモジュール」?

経緯
yumリポジトリ拡張してMongoDBインストール
これまでは正常に動作していた
Node.jsと連携させたいと思い、「npm install mongodb」と打ったら、正常動作しなくなる


Node.js との連携とトラブル

トラブル履歴

 閲覧数:423 投稿日:2014-10-22 更新日:2014-10-22 

権限エラー


$ cd /var/www/lib/node.js/

$ npm install mongodb
 
> kerberos@0.0.4 install /var/www/lib/node.js/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild 2> builderror.log) || (exit 0)

make: ディレクトリ `/var/www/lib/node.js/node_modules/mongodb/node_modules/kerberos/build' に入ります
 SOLINK_MODULE(target) Release/obj.target/kerberos.node
 SOLINK_MODULE(target) Release/obj.target/kerberos.node: Finished
 COPY Release/kerberos.node
make: ディレクトリ `/var/www/lib/node.js/node_modules/mongodb/node_modules/kerberos/build' から出ます

> bson@0.2.15 install /var/www/lib/node.js/node_modules/mongodb/node_modules/bson
> (node-gyp rebuild 2> builderror.log) || (exit 0)

make: ディレクトリ `/var/www/lib/node.js/node_modules/mongodb/node_modules/bson/build' に入ります
 CXX(target) Release/obj.target/bson/ext/bson.o
 SOLINK_MODULE(target) Release/obj.target/bson.node
 SOLINK_MODULE(target) Release/obj.target/bson.node: Finished
 COPY Release/bson.node
make: ディレクトリ `/var/www/lib/node.js/node_modules/mongodb/node_modules/bson/build' から出ます
mongodb@1.4.19 node_modules/mongodb
├── readable-stream@1.0.33-1 (isarray@0.0.1, inherits@2.0.1, string_decoder@0.10.31, core-util-is@1.0.1)
├── kerberos@0.0.4
└── bson@0.2.15 (nan@1.3.0)


$ mongo
MongoDB shell version: 2.4.9
connecting to: test
Wed Oct 22 18:01:11.222 Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145
exception: connect failed


$ sudo service mongod status
mongod は停止しています


$ mongo mydb
MongoDB shell version: 2.4.9
connecting to: mydb
Wed Oct 22 18:02:25.954 Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145
exception: connect failed


$ service mongod start
/etc/init.d/mongod: line 69: ulimit: open files: cannot modify limit: 許可されていない操作です
Starting mongod: runuser: 制限付きシェル /bin/false を使います
runuser: cannot set groups: 許可されていない操作です
                                                          [失敗]


$ sudo service mongod start
Starting mongod: about to fork child process, waiting until server is ready for connections.
forked process: 17365
all output going to: /var/log/mongo/mongod.log
can't open [/var/log/mongo/mongod.log] for log file: errno:13 Permission denied
Bad logpath value: "/var/log/mongo/mongod.log"; terminating.
ERROR: child process failed, exited with error number 1
                                                          [失敗]



$ sudo chown -R mongodb:mongodb /var/lib/mongodb/
chown: ユーザ指定が不正: `mongodb:mongodb'


$ sudo chown -R ★★:★★ /var/lib/mongodb/


# sudo -u mongod mongod -f /etc/mongod.conf --repair
about to fork child process, waiting until server is ready for connections.
forked process: 17912
all output going to: /var/log/mongo/mongod.log
can't open [/var/log/mongo/mongod.log] for log file: errno:13 Permission denied
Bad logpath value: "/var/log/mongo/mongod.log"; terminating.
ERROR: child process failed, exited with error number 1


$ mongo --version
MongoDB shell version: 2.4.9


$ mongod --dbpath /var/www/lib/mongo
Wed Oct 22 18:33:58.424 [initandlisten] MongoDB starting : pid=18115 port=27017 dbpath=/var/www/lib/mongo 64-bit host=www29330ue.sakura.ne.jp
Wed Oct 22 18:33:58.455 [initandlisten] db version v2.4.9
Wed Oct 22 18:33:58.455 [initandlisten] git version: 52fe0d21959e32a5bdbecdc62057db386e4e029c
Wed Oct 22 18:33:58.455 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Wed Oct 22 18:33:58.455 [initandlisten] allocator: tcmalloc
Wed Oct 22 18:33:58.455 [initandlisten] options: { dbpath: "/var/www/lib/mongo" }
Wed Oct 22 18:33:58.561 [initandlisten] exception in initAndListen: 10296
*********************************************************************
ERROR: dbpath (/var/www/lib/mongo) does not exist.
Create this directory or give existing directory in --dbpath.
See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************
, terminating
Wed Oct 22 18:33:58.561 dbexit:
Wed Oct 22 18:33:58.561 [initandlisten] shutdown: going to close listening sockets...
Wed Oct 22 18:33:58.561 [initandlisten] shutdown: going to flush diaglog...
Wed Oct 22 18:33:58.561 [initandlisten] shutdown: going to close sockets...
Wed Oct 22 18:33:58.561 [initandlisten] shutdown: waiting for fs preallocator...
Wed Oct 22 18:33:58.561 [initandlisten] shutdown: lock for final commit...
Wed Oct 22 18:33:58.561 [initandlisten] shutdown: final commit...
Wed Oct 22 18:33:58.575 [initandlisten] shutdown: closing all files...
Wed Oct 22 18:33:58.576 [initandlisten] closeAllFiles() finished
Wed Oct 22 18:33:58.576 dbexit: really exiting now



ファイルロック


・ファイルロックって何?
・下記ファイルが問題?
・思い切って削除した
▼/var/lib/mongo/mongod.lock
1644


最終的にFTPで「/var/log/mongo/mongod.log」を777へ変更

 閲覧数:326 投稿日:2014-10-22 更新日:2014-10-22 

履歴


# /etc/init.d/mongod start
Starting mongod: about to fork child process, waiting until server is ready for connections.
forked process: 18390
all output going to: /var/log/mongo/mongod.log
child process started successfully, parent exiting
                                                          [  OK  ]


# exit
exit


$ sudo service mongod status
mongod (pid 18390) を実行中...


$ mongo mydb
MongoDB shell version: 2.4.9
connecting to: mydb


> exit
bye



振り返り


・「/var/log/mongo/mongod.log」権限がおかしかったみたい
・ファイル所有者が一致していたので、まさか書き込み権限が書き換わっている(?)とは思わなかった
・権限がおかしくなった理由は不明
・「yum経由でインストール」「npm経由でインストール」の違いについても不明
・MongoDBイヤになる
・MySQLの方がはるかに楽
・しかし、Node.jsとの連携ではMongoDBが推奨されているみたいだし、
・これからどーしよー、て感じ



MongoDB入門

セキュリティ / MongoDB



週間人気ページランキング / 9-16 → 9-22
順位 ページタイトル抜粋 アクセス数
1 Nginx設定。エラーログレベル | Nginx(Webサーバ) 19
2 PHP実行ユーザ設定 / CentOS6 / Apache | PHP(プログラミング言語) 14
3 PHPのmb_send_mail関数でメール送信できない | メール処理システム 13
4 9回目-13.MySQL5.7.21設定 | CentOS 7 2週間無料のお試し期間 9回目(さくらVPS) 12
5 touch コマンド / viコマンド。新規ファイル作成時の違い | Linuxコマンド 8
6 ソースからビルドしたPython 2.7.3 アンインストール失敗 | Python(プログラミング言語) 7
6 FFmpeg 2.8.15 を yum インストール | ソフトウェアスイート 7
6 「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」対応 7
6 Python 3.5 アンインストール / yum remove | Python(プログラミング言語) 7
6 manページ日本語表示 | CentOS 7 (CentOS) 7
6 PHPファイルでchmodエラー | PHP(プログラミング言語) 7
7 ABRT により 問題が検出されました | CentOS 7 (CentOS) 6
7 Python 3.6 インストール / make altinstall | Python(プログラミング言語) 6
7 さくらVPS0 6
8 Reached target Shutdown メッセージが表示されたあと、シャットダウンまたは再起動プロセスがハングアップする | CentOS 7 (CentOS) 5
9 PHP Version 7.1.2 php-mecabエクステンション対応 / PHP 7.0.14 からのアップグレード  | MeCab(形態素解析) 4
9 echo と cat の違い 4
9 phpMyAdmin 4.4.3(phpMyAdmin) カテゴリー 4
9 tar: これは tar アーカイブではないようです 4
9 MySQL 5.5 から 5.6 へのアップグレード | MySQL(データベース) 4
2021/9/23 1:01 更新