• 【数据库】Mean web开发 04-MongoDB在Linux上的安装及遇到的问题


    简介

    Mean是JavaScript的全栈开发框架。更多介绍

    用MongoDB实现持久数据的存储是Mean Web全栈开发中的一部分。

    MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它的特点是高性能、易部署、易使用,存储数据非常方便。

    MongoDB的学习资料可参考:

    MongoDB中文社区

    上一节介绍了NoSQL Manager for MongoDB客户端管理工具连接本地数据库及使用方法,这一节介绍MongoDB在Linux上的安装及连接。

    Linux下安装MongoDB

    因为本地环境问题,我开发的时候一般喜欢直接连接到远程的私人服务器中,接下来让我们来尝试一下MongoDB在Linux上的安装、配置及连接。

    OS:Centos 7.2 

    安装包下载地址:点击这里查看

    1.下载并解压:

    curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.4.tgz
    tar -zxvf mongodb-linux-x86_64-rhel70-3.4.4.tgz

    2.将解压包移动到指定目录并添加路径:

    (/usr通常只包含系统发行时自带的程序,而/usr/local则是本地系统管理员用来自由添加程序的目录)

    MongoDB 的可执行文件位于 bin 目录下,所以将其添加到 PATH 路径中:

    mv  mongodb-linux-x86_64-rhel70-3.4.4/ /usr/local/mongodb
    export PATH=/usr/local/mongodb/bin:$PATH

    3.MongoDB中的数据库目录必须要手动创建,一般是在MongoDB目录下创建data/db文件夹和logs文件:

    cd /usr/local/mongodb
    mkdir -p data/db
    touch logs

    启动MongoDB及问题

    1.安装及配置完之后,在bin目录下运行:

    cd bin
    ./mongod --dbpath ../data/db

    如果看到这句话则运行成功:[thread1] waiting for connections on port 27017

    2.在bin下面输入以下命令即可对MongoDB进行后台管理

    ./mongo

    比如插入:

    > db.runoob.insert({x:10})
    WriteResult({ "nInserted" : 1 })
    > db.runoob.find()
    { "_id" : ObjectId("5604ff74a274a611b0c990aa"), "x" : 10 }
    >
    
    

    注意的问题:

    1.如果在启动的时候遇到:

    exception in initAndListen: 29 Data directory /data/db not found., terminating

    说明指定的数据库路径不对,

    出现上面这个错误是因为 /data/db 目录不存在,若启动时,不指定任何参数, MongoDB 会默认使用 /data/db 目录存储数据,我们可以使用 --dbpath 来指定其它的路径,比如:

    mongod --dbpath /Users/pantao/Workspace/MongoDB/db

    2.之前CentOS版本是6.6.所以会遇到如下问题 

    发现错误:./mongod: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./mongod)

    那是因为glibc版本太低(glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc)

    查看glibc版本,发现是2.12版本:

    或者执行:

    strings /lib64/libc.so.6 |grep GLIBC_

    所以建议用CentOS7.2版本,libc的版本是2.17不会出现这种问题。

    下一篇:用NoSQL Manager for MongoDB进行远程连接

  • 相关阅读:
    python学习,day5:内置模块(hashlib,加密)
    python学习,day5:内置模块(configerparser文件的创建和修改)
    python学习,day5:内置模块(xml文件的创建和修改)
    python学习,day5:内置模块(xml文件的管理)
    python学习,day5:内置模块(复制和压缩)
    python学习,day5:内置模块(sys)
    python学习,day5:内置模块(os模块)
    AngularJS中Model和Controller传值问题
    接收JSON类型转成对象
    改数据库编码latin1为utf8
  • 原文地址:https://www.cnblogs.com/gossgao/p/6994456.html
Copyright © 2020-2023  润新知