Ubuntu 20.04 安装 MongoDB

933 阅读2分钟

今天在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服务

参考资料:

Install MongoDB Community Edition on Ubuntu

MongoDB 4.0 开启用户权限认证