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
最后命令如下:
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
替换用户名 密码 映射路径 端口等
注意
- 如果前面做了很多次 失败了 而且映射的 db 都在一个位置 那么需要删除重新创建 db 目录 (宿主机)
- 如果 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 服务注释掉,否则会报错。