美文网首页
MongoDB安装和启动

MongoDB安装和启动

作者: 爱吃油果子 | 来源:发表于2020-03-22 12:39 被阅读0次

    一、安装

    # mongodb 4.2.3
    export MONGODB_HOME=/usr/local/mongodb
    export PATH=$MONGODB_HOME/bin:$PATH
    

    刷新生效

    source .bash_profile

    • 创建数据库存储目录 /data/db
    cd /usr/local/mongodb/bin 
    sudo mkdir -p ./data/db
    

    二、启动

    • 终端输入(使用sudo权限):
    sudo mongod
    
    • 如果没有创建全局路径 PATH,需要进入以下目录:
    cd /usr/local/mongodb/bin
    sudo ./mongod
    
    • 打开浏览器,输入http://localhost:27017会出现:
      It looks like you are trying to access MongoDB over HTTP on the native driver port.

    三、使用数据库

    • 再打开一个终端:
    mongo
    

    会出现版本信息:MongoDB shell version v4.2.3
    终端上会一直显示一个 ‘>’ 符号,此时就可以输入mongodb的sql命令了:

    # 输入命令试试
    show dbs;
    
    • 正确停止mongodb,一定要正确的退出,不然下次再次连接数据库会出现问题
    use admin;
    db.shutdownServer();
    

    此时http://localhost:27017连不上,服务也已停止

    四、生产环境-启动方式

    • 1、推荐使用配置文件方式启动
      cd /usr/local/mongodb/bin
      mongod -f mongodb.conf
    • 2、另一种是参数方式启动
      bin/mongod -dbpath /data/mongo/ -logpath /data/mongo/mongo.log -logappend -fork -port 27017 -auth

    五、生产环境-用户权限

    在生产环境是有权限的,创建/修改配置文件

    • 创建用户时noauth = true,创建完成后auth = true
      vi /usr/local/mongodb/bin/mongodb.conf
    # mongodb.conf
    
    # Where to store the data.
    dbpath=/data/db
    
    # where to log
    logpath=/var/log/mongodb/mongodb.log
    logappend=true
    
    # 允许后台运行
    fork=true
    
    # 任意ip可访问
    bind_ip = 0.0.0.0
    # 端口号
    port = 27017
    
    # Enable journaling, http://www.mongodb.org/display/DOCS/Journaling
    journal=true
    
    # Enables periodic logging of CPU utilization and I/O wait
    #cpu = true
    
    # Turn on/off security.  Off is currently the default
    #noauth = true
    auth = true
    
    • 在createUser之前先use admin切换一下
    use admin 
    db.createUser(
        {
            user:"username",
            pwd:"password",
            roles:[{role:"root",db:"admin"}]
        }
    );
    

    附:添加用户时各个角色对应权限
    1.数据库用户角色:read、readWrite;
    2.数据库管理角色:dbAdmin、dbOwner、userAdmin;
    3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
    4.备份恢复角色:backup、restore
    5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    6.超级用户角色:root

    • 创建完成后修改配置为auth = true并重启,下次就需要使用账号登录了
    use admin
    db.auth('username','password')
    show dbs
    # 展示集合列表
    show collections
    # 查询user集合汇总username为admin的1条数据
    db.user.find({username:'admin'}).limit(1)
    # 统计user集合的总条数
    db.user.count()
    
    • 可视化工具推荐
      官方的compass,第三方Robo 3T
      连接字符串格式,如密码含有特殊字符如斜杠需要转义
    # 不带账号密码数据库
    mongodb://127.0.0.1:27017
    # 指定账号密码数据库
    mongodb://username:password@127.0.0.1:27017/admin
    

    六、其他常见问题

    • telnet 27017不通时,检查防火墙状态放行端口
    # 防火墙开启状态
    systemctl status firewalld
    # 放行端口列表(如果没有在里面则使用后面的命令加入放行)
    iptables -nL
    # 防火墙放行27017即可
    iptables -I INPUT -p tcp --dport 27017 -j ACCEPT
    

    相关文章

      网友评论

          本文标题:MongoDB安装和启动

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