use MongoDB
docker run -itd --name note-mongo -p 27017:27017 mongo:4.4.6 --auth
Questions
1 启动时候报错 {“t”:{“$date”:“2023-02-19T03:18:26.560+00:00”},“s”:“F”
update docker to version 23.01, it works!!!
2 docker exec -it mongo mongosh admin 这里报 mongosh的错误
新版本的用mongosh,老版本用mongo
3 --auth
启用身份验证后,您可以定义用户账户和密码,并为每个用户分配适当的权限。只有经过授权的用户才能连接到MongoDB并执行相应操作
# 1 启动带有--auth选项的MongoDB容器
docker run -itd --name note-mongo -p 27017:27017 mongo:4.4.6 --auth
# 2 现在,MongoDB容器已经启动并运行,但要访问数据库,需要提供有效的用户名和密码。
# 3 创建一个具有读写权限的管理员账户(如admin)和一个普通用户账户(如app_user)
# 进入MongoDB容器内部
docker exec -it note-mongo bash
# 在容器内部连接MongoDB
mongo
# 切换到admin数据库,创建管理员账户
use admin
db.createUser({
user: "admin",
pwd: "admin123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
})
# 切换到应用数据库,创建普通用户账户
use appdb
db.createUser({
user: "app_user",
pwd: "password123",
roles: [ "readWrite" ]
})
4 现在,只有提供正确的用户名和密码才能连接到MongoDB容器并访问特定数据库。例如,使用以下命令以管理员身份连接到MongoDB:
mongo -u admin -p admin123 --authenticationDatabase admin
或者使用以下命令以普通用户身份连接到MongoDB:
mongo -u app_user -p password123 --authenticationDatabase appdb
5 docker exec -it note-mongo mongo admin
mongo admin:要执行的命令,在此示例中是连接到MongoDB的admin数据库