今天在ubuntu系统安装了MongoDB数据库,记录一下。
MongoDB
下载
# 导入包管理系统的密钥
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
# 为 MongoDB 创建一个列表文件
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
# 重新加载本地包数据库
sudo apt-get update
# 安装 MongoDB 包
sudo apt-get install -y mongodb-org
mongo命令
# 启动服务
sudo systemctl mongod start
# 查看状态
sudo systemctl status mongod
# 设置开机启动
sudo systemctl enable mongod
# 停止mongod服务
sudo systemctl stop mongod
# 重启mongoDB
sudo systemctl restart mongod
创建用户
MongoDB内建角色
- 数据库用户角色:read、readWrite;
- 数据库管理角色:dbAdmin、dbOwner、userAdmin;
- Read:允许用户读取指定数据库
- readWrite:允许用户读写指定数据库
- dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
- userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
- clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
- readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
- readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
- userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
- dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
- root:只在admin数据库中可用。超级账号,超级权限
use admin;
# 创建一个root用户
db.createUser({
user: 'superAdmin',
pwd: 'superAdmin',
roles: [{ role: 'root', db: 'admin' }]
})
# 创建test数据库
use test;
# 为test数据库添加owner角色
db.createUser({
user: 'testOwner',
pwd: '123456',
roles: [{ role: 'dbOwner', db: 'test' }]
})
修改绑定IP
由于MongoDB默认绑定的ip是127.0.0.1,服务会启动到127.0.0.1的ip上,所以只有本地的可以连接到数据库,如果要远程连接,则需要修改绑定IP为你指定的ip又或者0.0.0.0(这个类似于通配符*,让所有ip都可以访问)
# 修改mongoDB配置文件
vim /etc/mongod.conf
# 默认的bindIp
net:
port: 27017
bindIp: 127.0.0.1
👇👇👇👇👇👇👇👇👇👇👇
# 修改后的bindIp
net:
port: 27017
bindIp: 127.0.0.1, 192.168.1.11
开启权限认证
刚安装好的MongoDB默认是没有开启权限认证的,我们在创建好用户之后,就可以去配置文件中把它开启
# 还是之前那个配置文件
# 添加如下配置
security:
authorization: enabled
重启服务
保存好配置之后执行sudo systemctl mongod restart 重启mongo服务
参考资料: