zoukankan      html  css  js  c++  java
  • mongo部署(linux)

    Linux版本:CentOS release 6.9

    Mongodb版本:mongodb-linux-x86_64-3.6.1.tgz

    1、解压文件

    执行解压命令:tar -zxvf mongodb-linux-x86_64-3.6.1.tgz

     

    2、创建数据,日志目录

    命令:mkdir /my/mydata/mongodb

          mkdir /my/mydata/mongodb/log

          mkdir /my/mydata/mongodb/data

     

    3、编写mongodb配置文件

    执行命令:vi mongo.conf

    #端口

    port=27017

    #数据文件夹

    dbpath=/my/mydata/mongodb/data

    #日志文件

    logpath=/my/mydata/mongodb/log/log.log

    #后台进程

    fork=true

    #日志添加规则

    logappend=true

    #进程文件

    pidfilepath=/my/mydata/mongodb/log/p.pid

    #ip设置

    bind_ip=0.0.0.0

    #最大访问量

    maxConns=10000

     

    4、启动mongodb

    执行命令:./bin/mongod -f ./mongo.conf

     

    5、连接mongo

     

    6、停止

    执行命令: ./bin/mongod -f ./mongo.conf  --shutdown

    #日志文件位置
    logpath=/data/db/journal/mongodb.log  (这些都是可以自定义修改的)

    # 以追加方式写入日志
    logappend=true

    # 是否以守护进程方式运行
    fork = true

    # 默认27017
    #port = 27017

    # 数据库文件位置
    dbpath=/data/db

    # 启用定期记录CPU利用率和 I/O 等待
    #cpu = true

    # 是否以安全认证方式运行,默认是不认证的非安全方式
    #noauth = true
    #auth = true

    # 详细记录输出
    #verbose = true

    # Inspect all client data for validity on receipt (useful for
    # developing drivers)用于开发驱动程序时验证客户端请求
    #objcheck = true

    # Enable db quota management
    # 启用数据库配额管理
    #quota = true
    # 设置oplog记录等级
    # Set oplogging level where n is
    # 0=off (default)
    # 1=W
    # 2=R
    # 3=both
    # 7=W+some reads
    #diaglog=0

    # Diagnostic/debugging option 动态调试项
    #nocursors = true

    # Ignore query hints 忽略查询提示
    #nohints = true
    # 禁用http界面,默认为localhost:28017
    #nohttpinterface = true

    # 关闭服务器端脚本,这将极大的限制功能
    # Turns off server-side scripting. This will result in greatly limited
    # functionality
    #noscripting = true
    # 关闭扫描表,任何查询将会是扫描失败
    # Turns off table scans. Any query that would do a table scan fails.
    #notablescan = true
    # 关闭数据文件预分配
    # Disable data file preallocation.
    #noprealloc = true
    # 为新数据库指定.ns文件的大小,单位:MB
    # Specify .ns file size for new databases.
    # nssize =

    # Replication Options 复制选项
    # in replicated mongo databases, specify the replica set name here
    #replSet=setname
    # maximum size in megabytes for replication operation log
    #oplogSize=1024
    # path to a key file storing authentication info for connections
    # between replica set members
    #指定存储身份验证信息的密钥文件的路径
    #keyFile=/path/to/keyfile

    二、无验证登陆mongo   ./mongod -port [端口]
    1、创建管理用户
    db.createUser( {user: "admin",pwd: "12345",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
    三修改配置文件
    1、在config  shard配置文件末尾加入如下
    auth=true
    keyFile=/mydata/mongodb/keyfile
    2、在mongods配置文件末尾加入
    keyFile=/mydata/mongodb/keyfile
    四、重启服务
    1、killall mongod
    2、killall mongos
    重启每个节点的mongo
    五、创建程序使用的数据库和用户
    1、登陆mongo后创建程序使用的数据库
      use tps
    2、创建用户
    db.createUser(
      {
        user: "test",
        pwd: "12345",
        roles: [ { role: "readWrite", db: "testdb" } ]
      }
    )

       

    
    
    user:用户名
    
    pwd:密码
    
    roles:指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色。role里的角色可以选:
    
      Built-In Roles(内置角色):
        1. 数据库用户角色:read、readWrite;
        2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
        3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
        4. 备份恢复角色:backup、restore;
        5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
        6. 超级用户角色:root 
        // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
        7. 内部角色:__system
    
    具体角色:
    
    Read:允许用户读取指定数据库
    readWrite:允许用户读写指定数据库
    dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
    userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
    clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
    readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
    readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
    userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
    dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
    root:只在admin数据库中可用。超级账号,超级权限。
    3、查询数据库
      show dbs
      或
      show databases
    4、创建数据库
      use dbName
      查看表
      show tables;
    5、插入数据
      db.<tableName>.insert();
      如:db.members.insert({name:"Michael",age:18,...});
    6、查询
      db.<tableName>.find();
    7、修改
      如:db.members.update({name:"Michael"},{$set:{age:20}});
    8、删除表中的数据
      如:db.members.remove({name:"Michael"});
      删除全部:db.members.remove({});
    9、删除表
      db.members.drop();
    10、删除数据库
      db.dropDatabase();
  • 相关阅读:
    使用supervisor过程的坑
    为apache安装mod_wsgi的时候出现-fpic的问题
    信息生成二维码的方法
    mac下virtualbox安装win7系统
    js读取json方法
    如何读取抓取的wifi包内容
    python文章学习列表
    sqlserver中drop、truncate和delete语句的用法
    UE中使用正则表达式的一些技巧
    指定IE浏览器渲染方式
  • 原文地址:https://www.cnblogs.com/xuchen0117/p/13265793.html
Copyright © 2011-2022 走看看