mongodb的搭建

date
Sep 19, 2022
slug
mongodb
status
Published
tags
Website
summary
docker
type
Post
很多抄来抄去写的都是 先 --auth 启动后再 exec bash 进入容器 添加用户名密码 这种是错误的,都已经开启 auth 用户权限验证了是不能进入容器添加用户名和密码的!!!
真正的做法 可以去 dockerhub 看到官方已经写了真正的用法
地址: https://hub.docker.com/_/mongo
notion image
最后命令如下:
sudo docker run -d -p 27017:27017 --name mongodb -e MONGO_INITDB_ROOT_USERNAME=用户名 -e MONGO_INITDB_ROOT_PASSWORD=密码 -v $PWD/db:/data/db mongo
替换用户名 密码 映射路径 端口等

注意

  1. 如果前面做了很多次 失败了 而且映射的 db 都在一个位置 那么需要删除重新创建 db 目录 (宿主机)
  1. 如果 mongo 客户端版本过低的话 mongo 命令行登录会失败 Error: 2 { ok: 0.0, errmsg: "Auth mechanism not specified", code: 2, codeName: "BadValue" } 更新客户端到最新版即可

nignx反代

nginx 替 mongodb 做反向代理的坑,代码先锋网,一个为软件开发程序员提供代码片段和技术文章聚合的网站。
mongodb 需要 tcp 而 nginx 提供了 http 所以会出错 需要在 nginx.conf 中增加如下配置
stream {
    server {
        listen  <your incoming Mongo TCP port>;
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass    stream_mongo_backend;
    }

    upstream stream_mongo_backend {
      server <localhost:your local Mongo TCP port>;
  }
}

然后如果使用了 80 端口的话注意要把 http 服务注释掉,否则会报错。

© gwozai 2022 - 2024