最近在弄接口日志这块 想着把日志放到MongoDB中 本文基于docker-compose搭建MongoDB
docker和docker-compose环境是必需的
编写docker-compose.yml文件
version: '3'
services:
mongodb:
image: mongo:4.4
container_name: mongodb
restart: always
environment:
TZ: Asia/Shanghai
# MONGO_INITDB_DATABASE: test
# MONGO_INITDB_ROOT_USERNAME: admin
# MONGO_INITDB_ROOT_PASSWORD: admin
ports:
- "27017:27017"
volumes:
- /etc/localtime:/etc/localtime
- /opt/docker-data/mongodb/data:/data/db
- /opt/docker-data/mongodb/logs:/data/logs
- /opt/docker-data/mongodb/config:/data/configdb
# command:
# - /bin/bash
# - -c
# - mongod --port 27017 --bind_ip_all --auth
使用 docker-compose up -d mongodb 命令 启动服务
docker ps 查看服务是否正常启动运行
root@hax-System-Product-Name:/home/hax/IOT/config# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b5ce8efcdd4f mongo:4.4 "docker-entrypoint.s…" 55 minutes ago Up 55 minutes 0.0.0.0:27017->27017/tcp, :::27017->27017/tcp mongodb
进入mongo容器内部
docker exec -it mongodb bash
连接mongo服务
mongo
root@b5ce8efcdd4f:/# mongo
MongoDB shell version v4.4.29
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("8cd2e34e-8b78-4e87-b716-66f4aa327ce2") }
MongoDB server version: 4.4.29
切换到默认的admin数据库 总共有admin config local 三个默认的数据库
use admin
创建root用户
> db.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]})
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
整合Springboot的时候注意 yml配置 这里踩坑了 一直报 Caused by: com.mongodb.MongoCommandException: Command failed with error 18 忙活了半天
spring :
data:
mongodb:
host: 127.0.0.1
port: 27017
database: IOT # 使用的数据库
username: root
password: '123456' # 密码单引号引用
authentication-database: admin # 认证的数据库 因为我们的账号一开始都是基于这个库创建的