Linux下mongoDB的安装

jopen 9年前

    第一步:下载安装包。下载地址:mongoDB官网 http://www.mongodb.org

                 我下载的版本是:mongodb-linux-i686-2.0.2.tgz(建议不要使用过高版本的,因为我试了很多次就是不成功!)

    第二步:在linux中解压缩安装程序,通过命令操作:

tar -zxvf mongodb-linux-i686-2.0.2.tgz
    第三步:我们把mongodb-linux-i686-2.0.2重命名为mongoDB。


    第四步:我们在mongodb目录下新建一个data目录存放数据、新建一个log目录存放日志,然后在该目录下新建一个日志文件,例如我们命名为dblog。

mkdir log    mkdir data    cd log    touch dblog 
    第五步:然后定位到mongodb/bin目录中,使用mongod命令建立一个mongodb数据库链接,端口号默认设置为27017,数据库的存放路径为/mongodb/data,日志路径为/mongodb/log/dblog。</span>


启动命令:

./bin/mongod  --dbpath data/ --logpath log/dblog   all output going to: log/dblog  

    第六步:使用客户端来连接该数据库
    重新开启一个终端,然后切换到mongodb目录下:


    然后使用./bin/mongo命令来连接该数据库:

./bin/mongo
    第七步:通过浏览器访问
    在浏览器地址栏输入: http://localhost 然后回车访问
    可以看到如下提示:You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number
    然后根据提示把端口号加上1000访问 http://localhost:28017/ 。
    就能够访问到Monodb的服务端web页面


   第八步: 通过配置文件来配置Mongodb
   首先在mongodb目录下新建一个文件,文件名任意,在这里我取名为:mongodb.conf
   然后在配置文件中添加配置信息

port=27017【代表端口号,如果不指定则默认为 27017 】  dbpath=data/ 【数据库路径】  logpath=log/mongodb.log 【日志路径】  logappend=true 【日志文件自动累加,而不是覆盖】


    启动mongoDB服务:
./bin/mongod -f mongodb.conf    all output going to: log/dblog  
   然后访问方式和之前的一样。
</div>


我遇到的问题:

摘录:MongoDB非正常关闭后修复记录
  mongod没有后台执行,在终端连接非正常断开后,再次执行mongod报错,如下所示:
[root@localhost mongodb]# ./bin/mongod ./bin/mongod --help for help and startup options Thu Nov 17 22:42:49 Thu Nov 17 22:42:49 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability. Thu Nov 17 22:42:49 Thu Nov 17 22:42:49 [initandlisten] MongoDB starting : pid=3257 port=27017 dbpath=/data/db/ 32-bit host=localhost Thu Nov 17 22:42:49 [initandlisten] Thu Nov 17 22:42:49 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data Thu Nov 17 22:42:49 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations Thu Nov 17 22:42:49 [initandlisten] **       with --journal, the limit is lower Thu Nov 17 22:42:49 [initandlisten] Thu Nov 17 22:42:49 [initandlisten] db version v2.0.1, pdfile version 4.5 Thu Nov 17 22:42:49 [initandlisten] git version: 3a5cf0e2134a830d38d2d1aae7e88cac31bdd684 Thu Nov 17 22:42:49 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_41 Thu Nov 17 22:42:49 [initandlisten] options: {} ************** Unclean shutdown detected. Please visithttp://dochub.mongodb.org/core/repair for recovery instructions. ************* Thu Nov 17 22:42:49 [initandlisten] exception in initAndListen: 12596 old lock file, terminating Thu Nov 17 22:42:49 dbexit: Thu Nov 17 22:42:49 [initandlisten] shutdown: going to close listening sockets... Thu Nov 17 22:42:49 [initandlisten] shutdown: going to flush diaglog... Thu Nov 17 22:42:49 [initandlisten] shutdown: going to close sockets... Thu Nov 17 22:42:49 [initandlisten] shutdown: waiting for fs preallocator... Thu Nov 17 22:42:49 [initandlisten] shutdown: closing all files... Thu Nov 17 22:42:49 [initandlisten] closeAllFiles() finished Thu Nov 17 22:42:49 dbexit: really exiting now

修复方法:
这算是一个Mongod 启动的一个常见错误,非法关闭的时候,lock 文件没有干掉,第二次启动的时候检查到有lock 文件的时候,就报这个错误了。
解决方法:进入 mongod 上一次启动的时候指定的 data 目录  --dbpath=/data/mongodb
删除掉该文件:

rm /data/mongodb/mongo.lock --linux  del /data/mongodb/mongo.lock --windows
再执行:
./mongod  --repair
启动:
./bin/mongod -f mongodb.conf    all output going to: log/dblog 

OK,问题解决。
正确关闭mongod 的方法:进入mongo shell
use admin
db.shutdownServer()
也可以按照文档粗暴的杀掉它,它内部应该有KILL信号处理程序。
killall mongod  或 pkill mongod
请不要 kill -9 ,会造成文件数据混乱丢失 repair 也无力回天。(注意:不要用kill -9 PID 来杀死mongoDB进程,这样会导致mongoDB的数据损坏,用kill -2 杀死进程。)
ctrl+c 可以退出mongo的界面 或是ext


    参考资料:http://blog.csdn.net/black_ox/article/details/8599501

                     http://www.cnblogs.com/YOUCAN/archive/2013/01/27/2879121.html