发布于 

乌班图安装MongoDB 6.x

导入 MongoDB 公共 GPG 密钥

1
curl -fsSL https://pgp.mongodb.com/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor

添加 MongoDB 6.x APT 源

查看你的 Ubuntu 版本(以判断是 Focal 还是 Jammy)

1
lsb_release -a

根据你的 Ubuntu 版本设置以下源:
• 如果你是 Ubuntu 20.04(Focal):

1
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

• 如果你是 Ubuntu 22.04(Jammy):

1
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

更新 APT 并安装 MongoDB

1
2
sudo apt update
sudo apt install -y mongodb-org

查看安装的版本

1
mongod --version

启动 MongoDB 服务

1
sudo systemctl start mongod

检查服务状态

1
sudo systemctl status mongod

设置开机自启

1
sudo systemctl enable mongod

添加安全验证

尝试直接连接

1
mongosh

然后访问数据库

1
2
use admin
show dbs

如果

1
2
3
4
5
6
7
test> use admin
switched to db admin
admin> show dbs
admin 40.00 KiB
config 12.00 KiB
local 72.00 KiB
admin>

说明当前你是“未启用认证”状态,MongoDB 允许匿名访问,即:

MongoDB 没有启用用户认证(authorization: enabled)

先加入管理员账号密码再开启认证,否则无法登录

1
2
3
4
5
6
7
use admin

db.createUser({
user: "admin",
pwd: "yourStrongPassword", // 改成你想设置的密码
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
})

创建一个用户名为 admin 的用户
• 密码为 yourStrongPassword
• 这个用户被授予两个角色:
1.角色:userAdminAnyDatabase,数据库:admin ,含义 可以在任意数据库上创建/管理用户。这个角色必须在 admin 数据库中创建,MongoDB 规定的。
2.角色:readWriteAnyDatabase ,含义 允许对所有数据库进行读写操作 。

如果只是给某个业务数据库(如 myapp)创建普通用户,也可以这样

1
2
3
4
5
6
7
use myapp

db.createUser({
user: "myuser",
pwd: "mypassword",
roles: [ { role: "readWrite", db: "myapp" } ]
})

ctrl+d退出MongoDB

1.启用认证功能

1
sudo vim /etc/mongod.conf

2.修改配置

加入或取消注释下面这一段

1
2
security:
authorization: "enabled"

重启 MongoDB

开放外部连接

1.防火墙开放27017端口

2.修改配置

1
sudo vim /etc/mongod.conf

找到

1
2
3
net:
port: 27017
bindIp: 127.0.0.1

改为

1
2
3
net:
port: 27017
bindIp: 0.0.0.0

然后重启 MongoDB

重启 MongoDB

1
sudo systemctl restart mongod

卸载 MongoDB

1
2
3
sudo apt purge mongodb-org*
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb