Centos7安装mongodb
mongodb官网:https://www.mongodb.com/
1.配置mongodb(yum源)
创建一个/etc/yum.repos.d/mongodb-org-4.2.repo文件,以便您可以使用yum以下命令直接安装MongoDB
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
2、安装mongodb
yum install -y mongodb-org
3、修改配置文件mongodb.conf。修改绑定ip默认127.0.0.1只允许本地连接,修改为bindIp:0.0.0.0
vim /etc/mongod.conf
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
4、常用命令
systemctl status mongod.service # 查看mongod状态
systemctl start mongod.service # 启动
systemctl stop mongod.service # 停止
systemctl enable mongod.service # 自启
5、远程连接
默认连接
mongo 10.128.218.14:27017
连接到自定义的用户
创建用户,设置账号,密码,权限
// admin数据库
> use admin
switched to db admin
> db.createUser({ user:"root", pwd:"123456", roles:["root"] })
Successfully added user: { "user" : "root", "roles" : [ "root" ] }
// 其他数据库
> use test
switched to db test
> db.createUser({ user:"admin", pwd:"123456", roles:["readWrite", "dbAdmin"] })
Successfully added user: { "user" : "root", "roles" : [ "root" ] }
修改mongodb.conf文件,启用身份验证
vi /etc/mongod.conf
security:
authorization: "enabled" # disable or enabled
重启MongoDB
sudo service mongod restart
用户认证
// 授权
> use admin
switched to db admin
> db.auth("root", "123456")
// 其他常用命令
db.updateUser(user, writeConcern) # 更新用户
db.dropUser('test') # 删除用户
远程连接
// 终端连接
mongo 10.128.218.14:27017/database -u username -p password
// mongoose方式连接
mongoose.connect('mongodb://username:password@host:port/database?options...', {useNewUrlParser: true});
// 通过客户端连接,推荐客户端软件 Robo 3T
用户权限角色说明
规则 | 说明 |
---|---|
root | 只在admin数据库中可用。超级账号,超级权限 |
Read | 允许用户读取指定数据库 |
readWrite | 允许用户读写指定数据库 |
dbAdmin | 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile |
userAdmin | 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 |
clusterAdmin | 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限 |
readAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读权限 |
readWriteAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读写权限 |
userAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 |
dbAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限 |