安装步骤参考 https://www.cnblogs.com/layezi/p/7290082.html
安装前注意: 此教程是通过 yum 安装的. 仅限 64 位 centos 系统
安装步骤:
1、创建仓库文件:
然后复制下面配置, 保存退出
- vi / etc / yum.repos.d / mongodb - org - 3.4.repo
- [mongodb-org-3.4]
- name=MongoDB Repository
- baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
- gpgcheck=1
- enabled=1
- gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
2、yum 安装
没有权限就在前面加: sudo
- yum install - y mongodb - org
安装完毕后修改配置文件:
修改配置文件的
- vi / etc / mongod.conf
默认是
- bind_ip,
。所以安装完成后必须把这个修改为 0.0.0.0 , 否则通过别的机器是没法连接的!
- 127.0.0.1 只限于本机连接
3、启动、停止、重启
MongoDB 默认将数据文件存储在
目录,默认日志文件在
- /var/lib/mongo
中。如果要修改, 可以在
- /var/log/mongodb
配置中指定备用日志和数据文件目录。
- /etc/mongod.conf
启动命令:
停止命令:
- service mongod start
查看 mongoDB 是否启动成功:
- service mongod stop
可以通过查看日志文件
日志文件应该会出现如下一句说明
- cat /var/log/mongodb/mongod.log
- [initandlisten] waiting for connections on port <port>
也可以通过下面命令检查是否启动成功
4、使用
- chkconfig mongod on
- [root@instance-d0nk2r2c ~]# mongo
- ## 查看数据库
- > show dbs;
- ## 查看数据库版本
- > db.version();
- ## 常用命令帮助
- > db.help();
和其他所有数据库一样,权限的管理都差不多一样。mongodb 存储所有的用户信息在 admin 数据库的集合 system.users 中,保存用户名、密码和数据库信息。mongodb 默认不启用授权认证,只要能连接到该服务器,就可连接到 mongod。若要启用安全认证,需要更改配置文件参数 auth。
想要添加用户密码验证首先需要添加用户,用户存在 system.users 表中
- > use admin
- switched to db admin
- db.createUser({user:'admin',pwd:'admin123',roles:[{ "role" : "userAdminAnyDatabase", "db" : "admin" }]})
刚建立了 userAdminAnyDatabase 角色,用来管理用户,可以通过这个角色来创建、删除用户。
有没有一个超级权限?不仅可以授权,而且也可以对集合进行任意操作?答案是肯定的,只是不建议使用。那就是 role 角色设置成 root。
- db.createUser({user:'root',pwd:'root',roles:[{ "role" : "root", "db" : "admin" }]})
添加了两个用户可以语句查看:
- db.system.users.find()
此时连接仍然是没有验证的,我们需要重启 mongodb, 并且要在启动时带上 auth 参数,才会开启验证
用户角色授权:
- /usr/bin / mongod - f / etc / mongod.conf--auth
- #授予角色:db.grantRolesToUser( "userName" , [ { role: "<role>", db: "<database>" } ])
- db.grantRolesToUser( "admin" , [ { role: "userAdminAnyDatabase", db: "admin" } ])
- #取消角色:db.grantRolesToUser( "userName" , [ { role: "<role>", db: "<database>" } ])
- db.revokeRolesFromUser( "admin" , [ { role: "userAdminAnyDatabase", db: "admin" } ])
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数据库中可用。超级账号,超级权限
来源: http://www.bubuko.com/infodetail-2431705.html