搭建自己的服务器环境之安装mongo和mongo-express

前提准备

由于采用的docker安装, 需要安装docker以及docker-compose, 可以查看其他文章,也可点击查看该系列docker安装章节内容

配置文件

点击查看mongo配置文件模块官方文档

关于下列配置文件,全部来源于上述连接中个人查看后自行编写的内容,因此仅供参考

systemLog:
  destination: file
  path: "/var/log/mongodb/mongod.log" # 日志目的地,注意这是文件不是目录。Linux 包 init 脚本不希望 systemLog.path 改变默认值。如果使用 Linux 包并更改 systemLog.path,则必须使用自己的 init 脚本并禁用内置脚本。
  logAppend: true
  quiet: true # 以一种安静的模式运行 mongos 或 mongod,试图限制输出的数量,静音不推荐用于生产系统, 但有些地方使用可以决定是否使用
storage:
  dbPath: /etc/mongo/db/ # Mongod 实例存储其数据的目录。Dbpath 设置仅对 mongod 可用,注意这里是目录不是文件。
  engine: wiredTiger # Mongod 数据库的存储引擎 wiredTiger inMemory 指定内存中存储引擎
  wiredTiger:
    engineConfig:
      # 将用于所有数据的内部缓存的最大大小 如果您在一个无法访问系统中所有可用内存的容器(例如 lxc、 cgroups、 Docker 等)中运行 mongod,
      # 则必须将 storage.wiredTiger.engineConfig.cacheSizeGB,单位为GB, 设置为小于容器中可用内存总量的值。确切的数量取决于容器中运行的其他进程。参见 memLimitMB
      cacheSizeGB: 0.25
  journal:
      enabled: true # 启用或禁用持久性日志,以确保数据文件仍然有效且可恢复
net:
  bindIp: 0.0.0.0   # 绑定服务器, 0.0.0.0 允许所有机器访问, 127.0.0.1仅允许当前机器访问
  port: 27017 # 服务端口
  maxIncomingConnections: 65536 # 同时接受的最大关系数。如果此设置高于操作系统配置的最大连接跟踪阈值,则不会产生任何影响。不要将太低的值赋给此选项,否则在正常应用程序操作期间将遇到错误。
  wireObjectCheck: true # 防止客户机将格式不正确或无效的 BSON 插入 MongoDB 数据库
  serviceExecutor: adaptive # 用新的实验性异步联网模式,具有自适应的线程池,该线程池根据每个请求管理线程
setParameter:
  enableLocalhostAuthBypass: false  # 禁用本机身份验证
cloud:
  monitoring:
    free:
      state: runtime
security:
  # 启用或禁用以角色为基础的存取控制访问控制(RBAC)来管理每个用户对数据库资源和操作的访问。
  # enable 用户只能访问被授予特权的数据库资源和操作, disabled 用户可以访问所有的数据库并执行任何操作
  authorization: disabled
# 慢操作监控
operationProfiling:
  mode: slowOp
  slowOpThresholdMs: 10000
  slowOpSampleRate: 0.5
 
单机
docker-compose

准备事项

# 创建目录
mkdir -p /opt/mongo/config && mkdir -p /opt/mongo/logs/ && mkdir -p /opt/mongo/db
cd /opt/mongo/config
# 创建配置文件,将上面的配置文件内容放进来
vim mongod.conf
# 创建pid文件,配合processManagement.fork=true时使用
touch /opt/mongo/config/mongod.pid
# 创建日志文件
cd /opt/mongo/logs
touch mongod.log
# 整个目录赋权
chmod -R 777 /opt/mongo
# 创建dockerc-compose文件
cd /opt/mongo
vim docker-compose.yaml

docker-compose.yaml

mongo: https://hub.docker.com//mongo
mongo-express: https://hub.docker.com/
/mongo-express?tab=description

虽然从官方找的配置文件不建议修改日志目录,但是用docker安装的时候,发现还是要提前创建好,然后给与权限才行。
按需修改mongod.conf上面配置部分内容:

  • systemLog.path:/etc/mongo/logs/mongod.log
  • storage.dbPath:/etc/mongo/db/

注意
docker-express不要在生产环境中使用

下面docker-compose文件中引用了外部网络且指定了ip,这个是需要提前创建网络的,在docker安装篇中已经创建过

docker network create --driver=bridge --subnet=172.20.12.0/16 mynet
version: '3.1'
 
services:
  mongo:
    image: mongo:4.4.2
    container_name: mongo
    restart: always
    environment:
      # mongo的用户名和密码
      MONGO_INITDB_ROOT_USERNAME: develop
      MONGO_INITDB_ROOT_PASSWORD: 12345678
    ports:
      - 27020:27017
    volumes:
      - /etc/localtime:/etc/localtime
      - /opt/mongo/config/mongod.conf:/etc/mongo/mongod.conf:rw
      - /opt/mongo/config/mongod.pid:/etc/mongo/mongod.pid
      - /opt/mongo/db:/etc/mongo/db:rw
      - /opt/mongo/logs/:/etc/mongo/logs:rw
    command: "mongod --config /etc/mongo/mongod.conf"
    networks:
      default:
        ipv4_address: 172.20.0.13
  mongo-express:
    image: mongo-express:0.54.0
    container_name: mongo-express
    restart: always
    ports:
     - 8802:8081
    environment:
      # 具体全量的含义可以看上面dockerhub中mongo-express中的列表有详细解释
      # mongo的服务地址,可以配置容器名也可以用ip
      ME_CONFIG_MONGODB_SERVER: mongo
      # mongo服务的端口
      ME_CONFIG_MONGODB_PORT: 27017
      # mongo的admin用户名
      ME_CONFIG_MONGODB_ADMINUSERNAME: develop
      # mongo的admin密码
      ME_CONFIG_MONGODB_ADMINPASSWORD: 12345678
      # 编辑主题
      ME_CONFIG_OPTIONS_EDITORTHEME: ambiance
      # 是否可以执行全部操作
      ME_CONFIG_MONGODB_ENABLE_ADMIN: "true"
    networks:
     default:
        ipv4_address: 172.20.0.14
networks:
  default:
    external:
      name: mynet
 
访问mongo-express

按照docker-compose映射的端口,如上,则为8802, 然后ip:8802访问

docker-express

创建用户授权

内置角色

# mongo --help 查看帮助
mongo -u develop -p xxxx --authenticationDatabase admin
# authSource db, 名字按需取
use test_auth
# 对应连接地址mongodb://admin:123456@${host}:27017/?authSource=test_auth
# 或者指定默认数据库,没有会创建
# 对应连接地址# mongodb://admin:123456@${host}:27017/${数据库名}?authSource=test_auth
db.createUser( {user: "admin", pwd: "123456",roles: [ { role: "dbOwner", db: "test_auth" } ]})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值