<aside> 💡 数据库不推荐用docker安装,docker走的是虚拟网络,会有影响性能。
</aside>
docker pull mongo:latest
docker run -itd --name aliyun-mongo -p 27017:27017 mongo --auth
创建用户
$ docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')
<aside> 💡 事实是,MongoDB的用户权限和数据库是绑定的。
</aside>
这意思还是没有授权,但我明明不是已经创建了一个超级用户了吗,MySQL不就能通过一个超级用户畅通无阻吗。
**事实是,MongoDB的用户权限和数据库是绑定的。**也就是创建一个新的数据库,并在数据库中插入数据的正确操作应该是需要创建与之对应的用户,下面退出MongoDB命令行模式,重新进入:
输入use admin,进入admin数据库,root用户需要在admin数据库中认证。
输入**db.auth('root','root')**超级用户进行认证
输入db.createUser({user: "zkkyUser",pwd: "123456",roles: [ { role: "readWrite", db: "zkky" } ]} )创建zkkyUser用户,并为它指定数据库为zkky。
use4. 输入**db.auth('zkkyUser','123456')**切换认证用户。
输入use zkky切换至zkky数据库
输入db.zkky.insert({"name":"kevin"}),创建一条数据。
这才是创建一个数据库,并插入一条数据库的正确姿势,并且一定记住几点: