查询mongo镜像
docker search mongo
拉取镜像
docker pull mongo
运行容器
docker run --name mongodb -p 27017:27017 --restart always -v /mydata/mongo/db:/data/db -d mongo:latest
1.以 admin 用户身份进入mongo :
docker exec -it mongodb mongo admin
2.创建一个 admin 管理员账号 :
db.createUser({ user: 'admin', pwd: 'admin123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
3.对 admin 用户 进行身份认证
db.auth("admin","admin123456");
4.创建 用户、密码和数据库
用户zero
密码123456
数据库app
db.createUser({ user: 'zero', pwd: '123456', roles: [ { role: "readWrite", db: "app" } ] });
5.对 zero 进行身份认证
db.auth("zero","123456");
6.切换数据库
use app
7.添加数据
向表test中添加数据
db.test.save({name:"zhangsan"});
8.查询数据
db.test.find();
db.test.find();
{ "_id" : ObjectId("5d842b0a1aca998e6e302344"), "name" : null }
{ "_id" : ObjectId("5d84438a5e2a61d3c2138bc7"), "name" : "zhangsan", "type" : "T" }
{ "_id" : ObjectId("5d84438e5e2a61d3c2138bc8"), "name" : "zhangsan", "type" : "F" }
{ "_id" : ObjectId("5d8443945e2a61d3c2138bc9"), "name" : "one", "type" : "F" }
{ "_id" : ObjectId("5d8443aa5e2a61d3c2138bca"), "name" : "two", "type" : "F" }
{ "_id" : ObjectId("5d8443be5e2a61d3c2138bcb"), "name" : "two", "code" : "A" }
{ "_id" : ObjectId("5d845421729e8c43bc60fe49"), "_class" : "com.zero.nosql.pojo.Customer" }
{ "_id" : ObjectId("5d8454f0729e8c2ea0115de2"), "name" : "name", "code" : "CODE", "_class" : "com.zero.nosql.pojo.Customer" }
常用命令
https://www.cnblogs.com/zhy-1992/p/6856062.html
show collections 显示数据库下所有集合
异常情况
mongodb shell不能使用退格键的问题解决方案
在redhat linux下安装了mongodb,使用SecureCRT连接linux后,使用mongo来操作mongodb,在shell使用退格键时出现乱七八糟的字符,造成这个问题原因跟SecureCRT配置有关,修改设置为:选项 –> 会话选项 –> 终端 –> 仿真 –> 终端中选择linux 即可。
在SpringBoot中使用MongoDb
Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='zero', source='app', password=<hidden>, mechanismProperties={}}
这种情况是因为没有连上数据库,可以在控制台进入数据库使用show users检查数据库下是否有zero用户,如果没有就创建一个,然后重新启动程序