Mongodb 透過Docker 部署 並開啟事務功能及如何創建帳號
mongodb Version : 4.4.1
# docker-compose
# 有另外拆分 要記得在當前目錄 創建一個 .env
name: tools
version: "3.7"
services:
mongodb:
image: mongo:4.4.1
container_name: mongodb
restart: always
# volumes:
# - ${BACKUP_PATH}/mongodb:/data/db
logging:
driver: "json-file"
options:
max-size: "1g" # 设置最大日志文件大小为1GB
max-file: "3" # 设置最大日志文件数量
ports:
- 27017:27017
command: --replSet rs0
environment:
- MONGO_INITDB_ROOT_USERNAME=${MONGODB_ROOT_USERNAME}
- MONGO_INITDB_ROOT_PASSWORD=${MONGODB_ROOT_PASSWORD}
- TZ=${TZ}
networks:
backendNet:
networks:
backendNet:
#.env
############# MongoDB ############
MONGODB_VERSION=4.4.1
MONGODB_HOST_PORT=27017
MONGODB_ROOT_USERNAME=root
MONGODB_ROOT_PASSWORD=123456
初始化 Mongodb
若以上密碼有更改 請記得也要修改以下的範例
mongo --port 27017 --username root --password 123456 --authenticationDatabase admin
# 以下步驟在剛創建mongodb時 一次就好
rs.initiate()
rs.isMaster()
創建mongodb user 及 db
以下命令都需要透過 mongo 內建功能去進行創建,若是使用docker部署的話可以先進入容器內,docker exec -it mongodb bash
Step 1 登入mongo admin
# username 及 password 為創建mongodb時 使用的帳號密碼
mongo --port 27017 --username root --password 123456 --authenticationDatabase admin
Setp 2 創建user 及要使用的db
# 先切換到要使用的db
use test_db
# 創建 使用者 以及給予相對應的db權限,以下範例為讀寫權限都有
# user 及 pwd 為 要訪問該db的帳號密碼
db.createUser({
user: "test",
pwd: "123456",
roles: [
{ role: "readWrite", db: "test_db" }
]
})
Setp 3 登入mongodb
若有使用 Navicat 或者 Mongodb 其他gui工具 可以透過以下URI 對mongo進行訪問
mongodb://test:[email protected]:27017/test_db