美文网首页
MongoDB安装配置-叔叔的爱

MongoDB安装配置-叔叔的爱

作者: 卡修卡修 | 来源:发表于2018-12-13 14:40 被阅读11次

    你好啊大侄女儿,叔叔今天帮你解锁新姿识
    要是有啥问题,赶紧加微信viower进行一场轰轰烈烈的学术 性交流

    一. 下载MongoDB

    1. 我的环境 阿里云 CentOS

    2. 我的工具 FinalShell | Robo

    3. 根据你自己嗰的系统去官网下载适合的MongoDB
      https://www.mongodb.com/download-center/community

    4. 那么优秀的我,当然是这样选啦😅:
    5. 一般是把MongoDB装在 /usr/local/ 目录下面
      cd /usr/local

    6. 你可以选择下载到本地再上传到服务器,或者直接(复制下面的灰底字)
      wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-x.x.x.tgz


    二. 安装MongoDB

    1. /usr/local目录下面运行
      tar -zxvf mongodb-linux-x86_64-x.x.x.tgz

    2. 作为强迫症患者,你可以把文件夹重命名为mongodb
      mv /usr/local/mongodb-linux-x86_63-x.x.x /usr/local/mongodb


    三. 配置&启动MongoDB

    1. 创建数据存放目录和日志目录
      cd /usr/local/mongodb
      mkdir db
      mkdir logs
    2. 配置
      你可以选择创建配置文件,在/usr/local/mongodb/bin目录下创建mongodb.conf文件
      vi mongodb.conf

    #数据库目录
    dbpath=/usr/local/mongodb/db
    #日志目录
    logpath=/usr/local/mongodb/logs/mongodb.log
    #监听端口
    port=27017
    #后台混淆
    fork=true
    #需要身份验证
    #auth=true

    1. 执行bin目录下的mongod并指定配置文件
      cd /usr/local/mongodb/bin
      ./mongod -f mongodb.conf
    2. 或者直接运行指令启动
      ./mongod --dbpath=/usr/local/mongodb/db --logpath=/usr/local/mongodb/logs/mongodb.log --port=27017 --fork=true
    3. 配置开机启动,编辑/etc/rc.d/rc.local
      vi /etc/rc.d/rc.local
      在文件末尾添加一行:
      /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf
      配置完成后重启测试一下,祝你好运🙆
    4. 如果闲每次都要cdbin目录下打指令,可以全局配置一下
      vim ~/.bash_profile
      在末尾添加两行:
      export MONGODB_HOME=/usr/local/mongodb/bin
      export PATH=$MONGODB_HOME:$PATH
      保存(i编辑,esc退出编辑,:wq保存编辑)以后就可以直接mongo运行指令了

    四. 关闭MongoDB服务

    1. 进入mongoDB控制台
      mongo/usr/local/mongodb/bin/mongo
    2. 切换到admin(配置数据库)
      use admin
    3. 关闭服务
      db.shutdownServer();
    4. 退出控制台
      exit 或者直接 ctrl + c
    5. 再次运行mongo ... 😮失败了~
    6. 或者你可以暴力结束进程
      使用ps -aux查看所有进程,查找mongod所在进程的pid
      然后杀掉该进程
      kill -9 24760

    五. MongoDB创建用户

    1. 上面的配置项我们注释了auth,这样你就可以不用认证直接操作数据库。但一般来说,你必须设计自己的安全策略。首先应该创建不同的用户并分配不同的权限
    2. 创建用户
      use admin
      db.createUser({ user: "root", pwd: "xxxxxx", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
    3. 上面的指令中role是用户的权限,下面是详细选项及含义

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

    1. 创建用户成功后,我们重启mongoDB服务,在指令后面加--auth
      mongod -f /usr/local/mongodb/bin/mongodb.conf --auth
      或者在配置文件内加上auth=true
    2. 启动后执行任意指令
      例如show dbs
      啊哦😲报错了
    3. 因为你没有验证身份啊,兄dei~
      use admin
      db.auth("root", "xxxxxx")
      系统返回1表示验证成功
    4. 或者你可以在进入MongoDB控制台时进行用户验证
      mongo -u "root" -p "xxxxxx" --authenticationDatabase "admin"
    5. 查看所有用户
      db.system.users.find()
    6. 修改用户信息
      db.updateUser("admin", { user: "root", pwd: "xxxxxx", roles: [ "root","userAdminAnyDatabase" ] } )

    六. 远程连接MongoDB

    1. 查看防火墙状态
      service iptables status 了解详情
    2. 如果有开启,就要开放MongoDB服务端口(默认27017)咯
      iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT
      然后重启防火墙
      service iptables restart
    3. 还可以设置绑定到指定的IP地址,禁止白名单以外的IP访问
      设置配置文件(mongodb.conf),加上一行

    bind_ip=127.0.0.1 #本地访问
    bind_ip=0.0.0.0 #全网可访问

    1. 最后打开我们熟悉的Robo
    2. 🙊🙊🙊连接成功!

    相关文章

      网友评论

          本文标题:MongoDB安装配置-叔叔的爱

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