zoukankan      html  css  js  c++  java
  • MongoDB 安装

    MAC OSX

    Homebrew安装方法也很简单:打开终端,然后输入命令

    ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
    

    对,就是这么简单一条命令就可以将神器Homebrew安装好.

    安装MongoDB

    MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引.

    进入正题开始用Homebrew安装主角MongoDB~~~

    在终端输入如下命令即可安装MongoDB

    brew install mongodb
    

    用Homebrew安装软件是不是很爽,耐心等待一会儿MongoDB就会安装好了……

    测试MongoDB是否安装成功

    在终端输入如下命令进行测试

    mongod
    

    mongod命令是用来启动MongoDB的服务的

    执行mongos命令后返回了一堆错误信息,如下:

    mongod --help for help and startup options
    2014-07-17T21:34:21.732+0800 [initandlisten] MongoDB starting : pid=13117 port=27017 	dbpath=/data/db 64-bit host=zhcmacbook-pro.local
    2014-07-17T21:34:21.732+0800 [initandlisten] db version v2.6.3
    2014-07-17T21:34:21.732+0800 [initandlisten] git version: nogitversion
    2014-07-17T21:34:21.732+0800 [initandlisten] build info: Darwin minimavericks.local 13.2.0 	Darwin Kernel Version 13.2.0: Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/	RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
    2014-07-17T21:34:21.732+0800 [initandlisten] allocator: tcmalloc
    2014-07-17T21:34:21.732+0800 [initandlisten] options: {}
    2014-07-17T21:34:21.733+0800 [initandlisten] exception in initAndListen: 10296
    *********************************************************************
     	ERROR: dbpath (/data/db) does not exist.
     	Create this directory or give existing directory in --dbpath.
     	See http://dochub.mongodb.org/core/startingandstoppingmongo
    *********************************************************************
    , terminating
    2014-07-17T21:34:21.733+0800 [initandlisten] dbexit:
    2014-07-17T21:34:21.733+0800 [initandlisten] shutdown: going to close listening sockets...
    2014-07-17T21:34:21.733+0800 [initandlisten] shutdown: going to flush diaglog...
    2014-07-17T21:34:21.733+0800 [initandlisten] shutdown: going to close sockets...
    2014-07-17T21:34:21.733+0800 [initandlisten] shutdown: waiting for fs preallocator...
    2014-07-17T21:34:21.733+0800 [initandlisten] shutdown: lock for final commit...
    2014-07-17T21:34:21.733+0800 [initandlisten] shutdown: final commit...
    2014-07-17T21:34:21.733+0800 [initandlisten] shutdown: closing all files...
    2014-07-17T21:34:21.733+0800 [initandlisten] closeAllFiles() finished
    2014-07-17T21:34:21.733+0800 [initandlisten] dbexit: really exiting now
    

    这么一堆错误信息,重点是这几句

    ERROR: dbpath (/data/db) does not exist. Create this directory or give existing directory in –dbpath. See http://dochub.mongodb.org/core/startingandstoppingmongo

    错误信息的意思是dbpath (/data/db)不存在,需要创建/data/db这个目录或者使用--dbpath参数项指定一个已经存在的目录。

    dbpath (/data/db)这个目录是用来存储MongoDB数据文件的地方
    

    既然不存在/data/db那我们就创建这个目录

    首先在终端输入cd /命令返回到磁盘根目录

    然后输入mkdir -p /data/db创建/data/db

    再次输入mongos命令启动MongoDB的服务,服务又退出了返回一堆信息如下:

    mongod --help for help and startup options
    2014-07-17T23:56:40.285+0800 [initandlisten] MongoDB starting : pid=21182 port=27017 	dbpath=/data/db 64-bit host=zhcmacbook-pro.local
    2014-07-17T23:56:40.285+0800 [initandlisten] db version v2.6.3
    2014-07-17T23:56:40.285+0800 [initandlisten] git version: nogitversion
    2014-07-17T23:56:40.285+0800 [initandlisten] build info: Darwin minimavericks.local 13.2.0 	Darwin Kernel Version 13.2.0: Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/	RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
    2014-07-17T23:56:40.285+0800 [initandlisten] allocator: tcmalloc
    2014-07-17T23:56:40.285+0800 [initandlisten] options: {}
    2014-07-17T23:56:40.287+0800 [initandlisten] 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
    2014-07-17T23:56:40.287+0800 [initandlisten] dbexit:
    2014-07-17T23:56:40.287+0800 [initandlisten] shutdown: going to close listening sockets...
    2014-07-17T23:56:40.287+0800 [initandlisten] shutdown: going to flush diaglog...
    2014-07-17T23:56:40.287+0800 [initandlisten] shutdown: going to close sockets...
    2014-07-17T23:56:40.287+0800 [initandlisten] shutdown: waiting for fs preallocator...
    2014-07-17T23:56:40.287+0800 [initandlisten] shutdown: lock for final commit...
    2014-07-17T23:56:40.287+0800 [initandlisten] shutdown: final commit...
    2014-07-17T23:56:40.287+0800 [initandlisten] shutdown: closing all files...
    2014-07-17T23:56:40.288+0800 [initandlisten] closeAllFiles() finished
    2014-07-17T23:56:40.288+0800 [initandlisten] shutdown: removing fs lock...
    2014-07-17T23:56:40.288+0800 [initandlisten] couldn't remove fs lock errno:9 Bad file 	descriptor
    2014-07-17T23:56:40.288+0800 [initandlisten] dbexit: really exiting now
    

    出错原因是这几句log

    create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod 	instance already running?, terminating
    

    意思是不创建和打开/data/db/mongod.lock这个文件,原因是Permission denied(权限拒绝),看来是当前用户执行mongod这个命令时,对/data/db这个目录没有操作权限,OK,知道原因就好办了,给/data/db加上权限。

    在终端输入如下命令:

    sudo chown -R  当前登录的用户名 /data
    

    再次在终端输入mongod启动MongoDB的服务,返回如下信息:

    mongod --help for help and startup options
    2014-07-18T01:29:23.286+0800 [initandlisten] MongoDB starting : pid=22420 port=27017 	dbpath=/data/db 64-bit host=zhcmacbook-pro.local
    2014-07-18T01:29:23.286+0800 [initandlisten] db version v2.6.3
    2014-07-18T01:29:23.286+0800 [initandlisten] git version: nogitversion
    2014-07-18T01:29:23.286+0800 [initandlisten] build info: Darwin minimavericks.local 13.2.0 	Darwin Kernel Version 13.2.0: Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/	RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
    2014-07-18T01:29:23.286+0800 [initandlisten] allocator: tcmalloc
    2014-07-18T01:29:23.287+0800 [initandlisten] options: {}
    2014-07-18T01:29:23.288+0800 [initandlisten] journal dir=/data/db/journal
    2014-07-18T01:29:23.288+0800 [initandlisten] recover : no journal files present, no 	recovery needed
    2014-07-18T01:29:23.437+0800 [initandlisten] waiting for connections on port 27017
    

    终于启动成功了,然后再打开一个新的终端窗口输入mongo命令,返回如下信息:

    MongoDB shell version: 2.6.3
    connecting to: test
    Welcome to the MongoDB shell.
    For interactive help, type "help".
    For more comprehensive documentation, see
    http://docs.mongodb.org/
    Questions? Try the support group
    http://groups.google.com/group/mongodb-user
    >
    

    哦耶!,成功进入MongoDB的命令行模式,到这里MongoDB就安装好了!:] :] :]……

    转自http://www.inferjay.com/blog/2014/07/18/use-homebrew-install-mongodb-at-the-mac-osx-10.9.4/

    WINDOWS

    如题,这个问题也百度了很久,百度还是挺给力的,但是都没能解决问题,后来在大神(原谅我不知道大神叫什么)的指导下,终于设置成功,特分享下设置过程。。

    MongoDB设置数据库我就不说了。。。额。。算了,还是整理下,自己也复习一遍。。由于我是下载的安装包,exe直接安装的。。

    1.安装完毕之后,我的默认安装在  C:Program FilesMongoDB  下面,bin目录的完整路径为 C:Program FilesMongoDBServer3.2in(以后要用到)

    2.打开cmd(普通打开或者管理员打开均可),输入命令cd C:Program FilesMongoDBServer3.2in进入bin目录

    3.继续输入命令mongod --dbpath=d:/data/db (d:/data/db是我指定的数据库文件存放地点,当然默认是c:/data/db)

    4.如果之前是管理员身份的cmd,那就继续,否则重开个管理员身份的cmd,如果你已经有某个服务名了,比如MongoDB,那么先把这个删了,sc delete MongoDB

    5.然后再次进入第二部的文件夹,输入命令 mongod --logpath d:datalogMongoDB.log --logappend --dbpath d:datadb --directoryperdb --serviceName MongoDB --install

    6.继续输入指令net start MongoDB(MongoDB这个是第五步指定的服务名称)

    好了,到这里可能会出现部分问题:比如:

    72 Requested option conflicts with current storage engine option for directoryPerDB; you requested true but the current server storage is already set to false and cannot be changed, terminating

    这个错误是在d:datalogMongoDB.log 也就是第五步里面设置的log文件里面查看的。这个问题百度没有答案。。

    修改方法为:注意看第六步的 有个单词“directoryperdb”,没错,去掉。。那么命令就变成 mongod --logpath d:datalogMongoDB.log --logappend --dbpath d:datadb --serviceName MongoDB --install这个了。。

    然后继续第六步即可(涉及删除服务的,参照第四步)

    若还有问题。。额。。。欢饮一起讨论。。我也是刚接触。。。

    ======2016-2-24

    如上,虽然已经把服务弄成windows服务,每次连数据库的时候,不需要先去启动mongo服务了。。但是shell连接数据库还是要先cd到mongo安装的bin目录下。。很麻烦。。

    接下来把bin目录写到系统变量里面:

    1. 进入到高级系统设置;
    2. 进入到环境变量;
    3. 在系统变量里面找到变量名为Path双击进入;
    4. 在变量值的结尾处加入;C:Program FilesMongoDBServer3.2in(这个就是mongo安装目录的bin目录,别漏掉了分号),保存;
    5. 再新建一个CMD,输入mongo试试。

    参考:http://www.xiaoboy.com/detail/2015020310.html(灰常感谢)

    以上复制于http://www.cnblogs.com/daiyonghui/archive/2016/02/23/5209076.html(感谢again)

    -------------------------------

    php的mongo扩展已经不再维护了, 新的项目中composer update会报错

    Problem 1
        - yiisoft/yii2-mongodb 2.1.2 requires ext-mongodb >=1.0.0 -> the requested PHP extension mongodb is missing from your system.
        - yiisoft/yii2-mongodb 2.1.1 requires ext-mongodb >=1.0.0 -> the requested PHP extension mongodb is missing from your system.
        - yiisoft/yii2-mongodb 2.1.0 requires ext-mongodb >=1.0.0 -> the requested PHP extension mongodb is missing from your system.
        - Installation request for yiisoft/yii2-mongodb ~2.1.0 -> satisfiable by yiisoft/yii2-mongodb[2.1.0, 2.1.1, 2.1.2].
    

      所以需要重装个php-mongodb的扩展才能解决问题, 请看仔细, 末尾多了'db', mongo变成mongodb了...

  • 相关阅读:
    linux常用命令
    虚函数、纯虚函数、虚函数表、虚析构函数(一)
    有没有easyx库文件
    请教那位老师帮忙修重新改按键定义
    C语言txt文件元素追加
    do-while是如何控制指针+1的呢
    printf后的句子怎么显示啊
    如何用C语言生成高斯粗糙面
    读取文件时程序报错调试了好久不知道如何解决
    新人求教:字符串在文件输入中的整体输入
  • 原文地址:https://www.cnblogs.com/derrck/p/5283392.html
Copyright © 2011-2022 走看看