美文网首页Java
一、Mongodb安装和配置

一、Mongodb安装和配置

作者: Vchar_Fred | 来源:发表于2018-09-05 13:02 被阅读0次

    简介

    MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

    MongoDB是一个介于关系数据库和非关系数据库之间的产品。

    Mongodb安装

    下面安装的是mongodb-3.6.7版本,linux系统使用的是Centos7

    1、安装包下载

    进入mongodb官网下载地址https://www.mongodb.com/,点击右上角 Try Free 按钮进入下载页下载需要的安装包。

    版本说明:

    • 稳定版本:previous release
    • 最新版本:current release
    • 开发版本(不建议使用):development release

    下载说明:

    • windows版本的下载:直接下载MIS的安装包,下载后点击即可安装。
    • 对于linux版本,下面使用的是在Centos7上安装,因此选择的是Linux 64-bit legacy x64版本。

    2、 windows 上安装mongodb

    windows版本的下载好后直接安装就可以了,在安装的时候如果需要更改安装路径(建议自己重新选个安装路径)记得选自定义安装。

    我们本地开发只需要安装mongodb server就可以了,在选择的时候需要注意,如果安装路径选择没有出现先点击下一步再返回就出现了,在最后确认安装的时候,下面有个MongoDB的工具,记得去掉勾选,那个工具不是太好用,建议使用其他的如Robo 3T。同时可以不用让其安装为服务,这样我们可以使用下面脚本来启动,关闭也很方便。

    • 编写配置文件

    安装好后,在安装目录下的bin目录中创建一个mongodb的配置文件 mongodb.conf,并在里面写入如下配置。(注意里面的路径请写自己的,同时记得提前将你写的文件夹创建好,否则会启动失败)

    # 设置数据文件的存放目录
    dbpath = D:\devtools\MongoDB\data
    # 设置数据文件的存放目录
    logpath = D:\devtools\MongoDB\data\logs\mongodb.log
    # 设置端口号
    port = 27017
    # 设置为以守护进程的方式运行,即在后台运行
    #fork = true 
    # 关闭http接口,默认关闭27018端口访问
    #httpinterface = true
    #权限启用验证
    auth = false
    #绑定IP,使其可以外网访问
    #bind_ip = 0.0.0.0
    
    • 创建启动脚本

    在安装目录的bin目录中创建一个txt文本文件,在里面写入如下脚本

    @echo off
    title MongoDB服务
    echo ########################################
    echo # MongoDB服务启动成功...          
    echo #                                      
    for /f "tokens=4" %%a in ('route print^|findstr 0.0.0.0.*0.0.0.0') do (
    set IP=%%a
    )
    echo # IP:  %IP%  
    echo # 注意:关闭当前窗口即可停止MongoDB服务                 
    echo ########################################
    color 02
    echo.
    mongod -f mongodb.conf
    color 04
    echo.
    echo ########################################
    echo # MongoDB服务启动失败...
    echo #
    echo # 请查看日志文件中的错误提示
    echo ########################################
    pause
    

    或者直接写如下脚本:

    mongod -f mongodb.conf
    

    之后将文件后缀改为bat;现在点击运行该文件就可以启动mongodb数据库了

    脚本说明:其实只需要mongod -f mongodb.conf这句命令就可以了,后面这个‘mongodb.conf’就是刚才创建的配置文件


    3、 Centos7上安装mongodb

    • 安装包解压

        tar -zxvf mongodb-linux-x86_64-3.6.7.tgz
      

    重新命名,并将其移动到/home/soft/mongodb/mongodb-3.6.7目录下,此目录为自定义的。
    mv mongodb-linux-x86_64-3.6.7 /home/soft/mongodb/mongodb-3.6.7

    • 创建日志和数据存放文件夹

    在/home/soft/mongodb/mongodb-3.6.7目录下创建一个名为logs的文件夹和data/db的数据存放文件夹

    mkdir logs
    mkdir -p data/db
    
    • 编写配置文件

    进入/home/soft/mongodb/mongodb-3.6.7目录下的bin目录,在里面创建一个名为mongodb.conf的文件

    #数据文件存放目录
    dbpath = /home/soft/mongodb/mongodb-3.6.7/data/db
    #日志文件存放目录
    logpath = /home/soft/mongodb/mongodb-3.6.7/logs/mongodb.log
    #端口
    port = 27017
    #以守护进程的方式启用,即后台运行;默认false
    fork = true
    # 关闭web管理访问,默认关闭27018端口访问,这个是在prot端口上加1000
    #httpinterface = true
    #是否开启权限验证
    auth = true
    #绑定ip,让其能够通过外网访问, 0.0.0.0代表所有
    bind_ip = 0.0.0.0
    
    • 编写启动和停止脚本

    在mongodb的安装目录下的bin目录下执行如下操作

    创建启动脚本

    vi start.sh
    

    在脚本文件中写入如下内容:

    ./mongod -f mongodb.conf
    

    创建停止脚本

    vi stop.sh
    

    在脚本文件中写入如下内容:

    ./mongod -f ./mongodb.conf --shutdown
    

    注意:需要开启外网访问时,如果你使用的是阿里云的或腾讯云的服务器,且开启了安全组功能,那么你还需要在安全组模块中将你设置的端口开放。


    4、 设置管理账号

    4.1 先将配置mongodb.conf配置文件中的fork参数设为false,auth的设置为false; 然后启动mongo服务。

    使用脚本启动:
    ./start.sh

    4.2 让在另外一个管理窗口连接mongo

    ./mongo
    

    4.3 创建用户

    a. 添加超管用户(可以添加、更新、删除用户,以及数据库授权)

    use admin
    db.createUser(
        {
            user:"userAdmin",
            pwd:"123456",
            roles:[{
                role:"userAdminAnyDatabase",
                db:"admin"
                }
            ]
        }
    );
    

    退出登陆

    quit
    

    修改配置文件,将auth的设置为true,开启权限验证。停止mongo服务,重新启动。再次登陆。

    b. 添加普通用户(为其他数据库)

    #使用demo数据库
    use demo
    #添加用户
    db.createUser(
        {
            user:"demo",
            pwd: "123456",
            roles: [{ role: "readWrite", db: "demo"}]
        }
    )
    

    此时会报权限认证的错误,使用如下命令进行权限认证

    db.auth('userAdmin', '123456')
    

    之后再次执行添加用户操作。

    c. 添加超管用户root

    use admin
    db.createUser(
        {
            user:"root",
            pwd:"123456",
            roles:[{
                role:"root",
                db:"admin"
                }
            ]
        }
    );
    

    其他命令

    #进入admin数据库
    use admin
    #进行权限认证
    db.auth('userAdmin', '123456')
    #查询所有用户
    db.system.users.find()
    #更新用户
    db.updateUser('demo',{user:'demo',pwd:'123456',roles:[{role:'read',db:'demo'}]})
    #删除用户
    db.dropUser('demo')
    #创建数据库
    use 数据库名
    #显示已有数据库
    show dbs
    

    4.4 MongoDB数据库角色

    内建的角色

    名称 说明
    数据库用户角色 read、readWrite
    数据库管理角色 dbAdmin、dbOwner、userAdmin
    集群管理角色 clusterAdmin、clusterManager
    备份恢复角色 backup、restore
    所有数据库角色 readAnyDatabase、readWriteAnyDatabase
    超级用户角色 root (这里还有几个角色间接或直接提供了系统超级用户的访问[dbOwner 、userAdmin、userAdminAnyDatabase])
    内部角色 __system

    角色说明:

    名称 说明
    Read 允许用户读取指定数据库
    readWrite 允许用户读写指定数据库
    dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
    userAdmin 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
    clusterAdmin 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
    readAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读权限
    readWriteAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限
    userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
    dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
    root 只在admin数据库中可用。超级账号,超级权限

    5、下载图形化管理工具

    这里推荐使用: Robo3T, 官网地址:https://robomongo.org;官网上有Robo 3T(免费的)Studio 3T(功能更全面,高级功能收费;可以免费体验几天,到期后重新安装就又可以用了,导入导出数据时很方便);个人感觉Robo 3T的操作界面更清新些。

    相关文章

      网友评论

        本文标题:一、Mongodb安装和配置

        本文链接:https://www.haomeiwen.com/subject/dkonwftx.html