mongodb

Posted fengzp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb相关的知识,希望对你有一定的参考价值。

1.安装mongodb
  brew install mongodb

  其它OS上的安装请参考:https://docs.mongodb.org/manual/installation/

2.启动
  mongod db的数据文件默认保存在/data/db目录(如果该目录不存在,启动会报错),默认监听的端口是27017,默认不启动安全认证机制  

  --dbpath 指定数据文件保存路径
  --port 指定监听端口
  --fork 在后台开启Mongdb服务
  --logpath /var/log/mongodb.log 指定日志输出目录
  --logappend 以追加的方式创建日志防止把之前的日志删除了

  这里的启动指定了数据保存路径和端口
  mongod --dbpath /Users/fengzp/Documents/develop/java-tools/mongodb/mongodb-data --port 12345 --fork --logpath /Users/fengzp/Documents/develop/java-tools/mongodb/mongodb-log/mongodb.log --logappend

3.连接
  mongo -port 12345
  如果是监听默认端口27017,就不用加上-port 12345

4.安全认证和创建用户
  不带--auth的启动方式是很可怕的,没有任何安全控制,一般只限于开发环境。生产环境肯定要开启安全认证,mongodb在安全认证的主要思路是:
先在某个库上创建用户(db.createUser) -> 将该用户授权(db.auth) -> mongod启动时指定--auth选项 -> mongo客户端连接时指定用户名、密码、认证db(或者连接时先不指定用户名、密码,连接上以后,再用db.auth切换到认证用户身份)

  4.1创建数据库
    use demo
    use后加数据库名称即可,如果数据库不存在,会自动创建

  4.2创建用户
    db.createUser( { "user" : "admin", "pwd": "123456", "roles" : [ "readWrite","dbAdmin","userAdmin"]})
    这样就创建了一个名为admin的管理员,而且具备读写、db管理、用户管理权限。mongo默认的roles角色,可参考:https://docs.mongodb.org/manual/reference/built-in-roles/#built-in-roles

  4.3用户授权
    db.auth({ user: "admin", pwd: "123456" })

  4.4启动安全认证
    mongod --auth

  4.5指定安全信息的连接
    mongo localhost:12345/demo -u admin -p 123456 --authenticationDatabase demo

5.关闭服务

前台运行:

  没有使用--fork,直接可以前台退出终端关闭。通过这种方式,Mongodb将会自己做清理退出,把没有写好的数据写完成,并最终关闭数据文件。要注意的是这过程会持续到所有操作都完成。

后台运行:

  如果使用--fork在后台运行mongdb服务,使用db.shutdownServer()命令来关闭。

以上是关于mongodb的主要内容,如果未能解决你的问题,请参考以下文章

MongoDBMongodb——GridFS存储

mongoDBmongoDB副本集实战

MongoDBMongoDb数据结构

MongoDBmongodb设置用户访问权限

MongodbMongodb复制和分片

MongoDBMongoDB的安装教程