学习过程中使用MongoDB一般都是直接本地无用户密码连接,可是生产上使用的数据库肯定不是这样的,自己工作之余学习使用记录一些卡点。
安装过程
拉取镜像
docker pull mongo:latest
启动容器
docker run -itd --name mongo -p 27017:27017 mongo --auth
-p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。
--auth:需要密码才能访问容器服务。
接着使用以下命令添加用户和设置密码,并且尝试连接。
docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')
如下:
mongosh是从 MongoDB 4.2 开始推出的 shell 工具,取代了之前的 mongo 命令,用于执行数据库的操作,这里要留意一下,如上述错误请使用一下方案
mongosh
客户端连接
我使用的是Robo 3T 无密码时一般是这种连接
有密码时:
创建链接,
由于自己初学找了好多博客等都是无密码链接,最后还是看官方文档才知道了链接方式
附官方文档地址 mongodb.github.io/node-mongod…
egg-mongoose的链接方式
自己也试了很多方式才找到的,难道正式环境都不加用户密码的么?
附来源地址 github.com/eggjs/egg/i…
方便别人学习,也方便自己记录。
由于自己一直做前端,开发,这些许久不用,后来再看自己都忘了是什么了,以下是最近又看补充的一点知识