Mongodb的安装部署

它是由C++编写的分布式文档数据库。

内部使用类似于Json的bson格式。

官网文档https://docs.mongodb.com/

中文手册https://www.w3cschool.cn/mongodb/

安装

https://www.mongodb.com/download-center/community

windows下载官方zip,解压即可使用。

组件 文件
server mongod.exe
client mongos.exe
router mongo.exe

运行

$ cd  /d/mongodb/bin
$ ./mongod.exe
2019-08-02T03:26:13.234-0700 I STORAGE  [initandlisten] exception in 
initAndListen: NonExistentPath: Data directory d:\data\db\ not found., 
terminating

启动服务出错,原因在于找不到数据目录。默认是/data/db

windows下在当前盘符根目录下创建目录即可`d:/data/db`

选项说明

  • --bind_ip ip 逗号分隔IP地址。默认localhost

  • --bind_ip_all 绑定所有本地IP地址

  • --port port 端口,默认27017

  • --dbpath path 数据路径,缺省为\data\db\ 。windows下缺省就是当前盘符的根目录

  • --logpath path 指定日志文件,替代stdout,说明默认是控制台打印日志

  • -f file 指定配置文件,yaml格式

  • 注册windows服务

    • --install 注册windows服务
    • --serviceName name 服务名称
    • --serviceDisplayName name 服务显示名

配置文件

mongodb配置使用YAML格式

嵌套使用缩进完成,不支持Tab等制表符,支持空格

冒号后要有空格

Yaml参考 https://www.w3cschool.cn/iqmrhf/dotvpozt.html

配置 http://mongoing.com/docs/reference/configuration-options.html

指明日志的地址

指明数据存放地址,需要提前新建文件夹

指明ip和端口

systemLog:
   destination: file
   path: "/d/mongodb/mongod.log"
   logAppend: true
storage:
   dbPath: "D:/data/db"
net:
   bindIp: 127.0.0.1
   port: 27017

选项

  • systemLog
    • destination,缺省是输出日志到std,file表示输出到文件
    • path,日志文件路径。文件目录必须存在
    • logAppend,true表示在已存在的日志文件追加。默认false,每次启动服务,重新创建新的日志。
  • storage
    • dbPath,必须指定mongodb的数据目录,目录必须存在
  • net
  • bindIp,缺省绑定到127.0.0.1
  • port,端口,缺省为27017,客户端连接用

依赖配置文件启动

$ ./mongod.exe -f "d:/mongodb/bin/mongod.cfg"

Windows下注册为服务的命令如下,使用了配置文件:
$ mongod.exe -f "d:/mongodb/bin/mongod.cfg" --serviceName mongod --serviceDisplayName mongo --install
注意,注册服务得需要管理员权限。

docker部署

docker-compose文件

version: '3.1'
services:
  mongo:
    image: mongo:6.0.4
    container_name: mongo
    restart: always
    networks:
      - mongo
    ports:
      - 27017:27017 
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: 111111
      wiredTigerCacheSizeGB: 2
    command:
      - --config
      - /etc/mongod.conf
    volumes:
      - "./data:/data/db" # 挂载数据目录
      - "./mongod.conf:/etc/mongod.conf" # 挂载配置文件
      - "./log:/var/log/mongodb"  # 挂载日志目录
      - "/usr/share/zoneinfo/Asia/Shanghai:/etc/localtime"
  mongo-express:
    image: mongo-express
    container_name: mongo-express
    restart: always
    networks:
      - mongo
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: root
      ME_CONFIG_MONGODB_ADMINPASSWORD: 111111
      ME_CONFIG_MONGODB_SERVER: mongo
      #ME_CONFIG_MONGODB_URL: mongodb://root:111111@mongo:27017/
networks:
  mongo:

对应的配置文件

systemLog:
   destination: file
   path: "/var/log/mongodb/mongod.log"
   logAppend: true
storage:
   dbPath: "/data/db"
net:
  bindIpAll: true
security:
  authorization: "enabled"

注意:

  1. 需要先创建log目录 mkdir log
  2. 需要给777权限,否则会报 {"t":{"$date":"2023-12-26T03:00:12.420Z"},"s":"F", "c":"CONTROL", "id":20574, "ctx":"-","msg":"Error during global initialization","attr":{"error":{"code":38,"codeName":"FileNotOpen","errmsg":"Can't initialize rotatable log file :: caused by :: Failed to open /var/log/mongodb/mongod.log"}}}
    chmod 777 log
posted @ 2023-01-31 05:39  厚礼蝎  阅读(142)  评论(0编辑  收藏  举报