安装Mongodb
-
创建.repo文件,生成mongodb的源
vi /etc/yum.repos.d/mongodb-org-4.0.repo
-
添加以下配置信息并保存(这里使用阿里云的源)
[mngodb-org] name=MongoDB Repository baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.0/x86_64/ gpgcheck=0 enabled=1
-
使用yum安装MongoDB
sudo yum install -y mongodb-org
-
验证安装结果
rpm -qa |grep mongodb rpm -ql mongodb-org-server
-
启动MongoDB
启动MongoDB服务
systemctl start mongod.service
MongoDB默认端口是27017,查看是否开启
netstat -natp | grep 27017 或 lsof -i:27017
检查数据库是否安装成功
ps -aux | grep mongod
常用命令清单
// 1、开启MongoDB
sudo service mongod start 或者 systemctl start mongod.service # 开启MongoDB
sudo chkconfig mongod on # 加入开机启动
sudo service mongod restart # 重启MongoDB
// 2、关闭MongoDB
sudo service mongod stop # 关闭防火墙
// 3、卸载MongoDB
sudo yum erase $(rpm -qa | grep mongodb-org) # 卸载MongoDB
sudo rm -r /var/log/mongodb # 删除日志文件
sudo rm -r /var/lib/mongo # 删除数据文件
创建用户设置权限
连接数据库
mongo 127.0.0.1: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
# 重启
sudo service mongod restart
接下来操作数据库就需要登录授权
use admin
> switched to db admin
db.auth("root", "123456")
> 1 // 授权成功
远程连接数据库
修改配置文件mongodb.conf,将bindIp修改为0.0.0.0(默认127.0.0.1只允许本地连接)
vi /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, ...
修改完重启服务
sudo service mongod restart
开放对外端口27017
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT
远程连接
mongo {ip}:27017/database -u username -p password
也可以通过客户端管理工具连接
https://blog.csdn.net/jhfyuf/article/details/86617663
Mongodb角色权限
规则 | 说明 |
---|---|
root | 只在admin数据库中可用。超级账号,超级权限 |
Read | 允许用户读取指定数据库 |
readWrite | 允许用户读写指定数据库 |
dbAdmin | 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile |
userAdmin | 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 |
clusterAdmin | 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限 |
readAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读权限 |
readWriteAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读写权限 |
userAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 |
dbAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限 |
参考文献