MongoDB 使用指导
MongoDB 安装
初始化
1. 进入 MongoDB 容器
docker exec -it <容器ID或名称> mongosh
# 或旧版本 MongoDB 使用:
# docker exec -it <容器ID或名称> mongo
2. 创建管理员用户(可选,但推荐)
如果容器启动时未设置管理员用户,需先创建一个:
use admin
db.createUser({
user: "admin",
pwd: "your_admin_password",
roles: [{ role: "root", db: "admin" }]
})
3. 创建数据库和用户
假设要创建名为 mydb
的数据库,并设置用户 user1
(密码 password123
):
use mydb
db.createUser({
user: "user1",
pwd: "password123",
roles: [
{ role: "readWrite", db: "mydb" }, // 允许读写权限
{ role: "dbAdmin", db: "mydb" } // 允许管理数据库
]
})
4. 验证用户权限
退出当前会话,使用新用户登录测试:
docker exec -it <容器ID或名称> mongosh mydb -u user1 -p password123
5. 启用认证(重要!)
如果容器启动时未启用认证,需在 docker run
命令中添加以下参数:
docker run -d \
--name mongodb \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=admin123 \
-p 27017:27017 \
-v mongodb_data:/data/db \
mongo
6. 持久化数据
确保通过 -v
参数挂载卷,避免容器删除后数据丢失:
# 启动容器(带认证和持久化)
docker run -d \
--name mongodb \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=admin123 \
-p 27017:27017 \
-v mongodb_data:/data/db \
mongo
# 进入容器创建用户
docker exec -it mongodb mongosh admin -u admin -p admin123
远程连接或启用认证
mongosh "mongodb://用户名:密码@主机地址:端口/数据库名"
# 示例:
mongosh "mongodb://admin:admin123@localhost:27017/mydb"
注意事项
- 生产环境务必启用认证(
--auth
或环境变量)。 - 使用强密码,避免使用默认端口(27017)直接暴露到公网。
- 可通过
docker-compose.yml
简化配置。
插入数据触发数据库创建
向集合中插入一条数据,数据库会自动创建:
db.myCollection.insertOne({ name: "Test", value: 1 })
// 验证数据库是否创建
show dbs