Ubuntu 安装 MongoDB

Ubuntu 下如何用 apt-get 安装最新的 MongoDB

Ubuntu 安装 MongoDB

官网:https://www.mongodb.com/

社区版下载地址: https://www.mongodb.com/try/download/community

安装命令

## 安装依赖
curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

## 查看添加成功没
apt-key list

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

## 更新 apt
sudo apt update

## 安装 mongo
sudo apt install mongodb-org

## 启动服务
sudo systemctl start mongod.service

## 查看服务状态
sudo systemctl status mongod

## 启用状态
sudo systemctl enable mongod

## 停用状态
sudo systemctl stop mongod

初始化配置

vim /etc/mongod.conf
# network interfaces
net:
  port: 27017
#  bindIp: 127.0.0.1
  bindIp: 0.0.0.0

编辑了用户记得重启

sudo systemctl restart mongod

登陆 mongo

在安装了mongod的服务本机,mongo是无密码的,可输入如下命令直接登陆

$ mongo

远端通过如下命令登陆,未设置密码情况下,绑定了外网地址情况下,也能登陆

$ mongo "mongodb://192.168.0.x:27017"

创建用户

  • 产看所用用户
> use admin
switched to db admin
> db.system.users.find().pretty()

注意:用户相关的操作都需要 在admin db下操作!

创建 root 用户

> db.createUser(
    {
        user:"root",
        pwd:"pwd",
        roles:["root"]
    }
)

注意: 密码最好不要使用 & ? # : $ ; / . @ 等符号,因为 mongo DSN 格式是个 url,url 相关的关键词都不要用哦!

创建 admin 用户

> db.createUser(  
  { user: "admin",  
    customData:{description:"superuser"},
    pwd: "admin",  
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]  
  }  
)  

创建业务用户

> db.createUser({
    user:"user001",
    pwd:"123456",
    customData:{
        name:'jim',
        email:'jim@qq.com',
        age:18,
    },
    roles:[
        {role:"readWrite",db:"db001"},
        {role:"readWrite",db:"db002"},
        'read'// 对其他数据库有只读权限,对db001、db002是读写权限
    ]
})

用户管理

  • 改密码
use admin
db.changeUserPassword("username", "xxx")
  • 为用户追加权限
db.grantRolesToUser( "<username>", [ <roles> ], { <writeConcern> } )
  • 删除用户
use admin
db.dropUser('user001')

安全设置

访问mongo认证配置

在无密码的mongo上配置好用户后,就可以启用安全认证了。

vim /etc/mongod.conf
#security:

修改为:

security:
  authorization: enabled

如果是 mongo 低于 2.6 那么在配置文件最后一行加上:

auth = true

参考

  • https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-20-04
  • https://segmentfault.com/a/1190000015603831
  • https://stackoverflow.com/questions/25325142/how-to-set-authorization-in-mongodb-config-file