mongodb的安装和权限管理
mongodb4.0已经发布,但是鉴于线上环境更多的是使用旧版本的mongodb,我们这里使用的mongodb3.4版本。
官网下载地址为:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.18.tgz
直接解压 tar zxvf mongodb-linux-x86_64-rhel62-3.4.2.tgz 然后移动修改目录名字(可以做成软连接的形式) mv mongodb-linux-x86_64-rhel62-3.4.2 /usr/local/mongodb mongodb的二进制预编译方式已经安装完成。 [root@test3 mongodb]# pwd /usr/local/mongodb [root@test3 mongodb]# ls bin GNU-AGPL-3.0 MPL-2 README THIRD-PARTY-NOTICES [root@test3 mongodb]# 需要注意的是二进制预编译包没有默认的配置文件,但是默认的配置参数。 #还有就是mongodb的启动一定要放在配置文件中启动不要在命令行指定参数启动 #在当前目录创建conf目录 mkdir conf #编写配置文件mongod.cnf #配置文件如下
[root@test3 conf]# cat mongod.conf # for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/ # where to write logging data. systemLog: destination: file logAppend: true path: /data/mongod/log/mongod.log # Where and how to store data. storage: dbPath: /data/db journal: enabled: true # engine: # mmapv1: # wiredTiger: # how the process runs processManagement: fork: true # fork and run in background pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile # network interfaces net: port: 27017 bindIp: # Listen to local interface only, comment to listen on all interfaces. #security: # security: # authorization: enabled #operationProfiling: #replication: #sharding: ## Enterprise-Only Options #auditLog: #snmp:
配置文件参数简易说明: --dbpath: 数据文件目录,默认是/data/db.需要创建 --logpath:指定日志文件的存储目录。默认日志输出是在标准输出。对应配置文件中systemlog. --port: 指定mongodb监听的端口,默认是27017. --fork: 以守护进程运行,只在类unix系统上有用。 使用以上四个参数就可以启动mongodb服务了. [root@test3 conf]# cd /usr/local/mongodb/bin/ [root@test3 bin]# ./mongod -f ../conf/mongod.conf [root@test3 bin]# ./mongo #进入mongodb的shell交互 MongoDB shell version v3.4.2 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.2 >
mongodb默认是不用用户认证的,因此上面可以直接进入shell交互界面进行crud操作。
需要注意的是: mongodb3.0之后的配置文件时以yaml格式写的!
开启mongodb的auth认证,如下:
#security:
security:
authorization: enabled #开启auth认证
mongodb的官方文档感觉和MySQL差距好大,查了博客,链接https://www.cnblogs.com/xiaoqian1993/p/5944039.html
mongodb的账户组成:
- 用户名
- 密码
- role(角色中有对数据库的访问权限设置,把定义的用户归档到需求的角色类中)
- db: 指定某用户对某个库(库名由db指定)的访问。
博文中有一句话: 帐号是跟着库走的,所以在指定库里授权,必须也在指定库里验证(auth)