侧边栏壁纸
博主头像
Blog博主等级

行动起来,活在当下

  • 累计撰写 211 篇文章
  • 累计创建 94 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

docker应用开发(一)

1.项目概述

开发一个web应用接口,能够通过该接口实现对数据库中数据的增删改。

2.工具准备

  • idea

  • docker

  • mongodb

  • robo 3T

  • springboot

  • postman

3.开发过程

3.1 docker中搭建mongo数据库

docker run -itd --name mongo -p 27017:27017 mongo --auth

(1)--name后面的参数为docker容器名;

(2)-p后面是端口映射,即宿主端口:容器端口

(3)--auth是否开始鉴权,如果不想开启可以去掉;

成功启动MongoDB一个实例后,会返回容器ID,如305ebd8236678905d16dd76e75dcf99fdd812be6b13c240acece7985d29b316c

通过命令docker ps可以查看正在运行的容器,经过检查,确实已经起来了。

注意:默认数据是存在容器系统的/data/db目录下的,如果需要使用自定义的宿主机器目录,可以在启动命令加上参数:

-v /my/own/datadir:/data/db

3.1.1 进入容器创建数据库用户

docker exec -it mongo bash

通过容器中的客户端连接数据库

# 默认连接本地的27017端口的MongoDB
$ mongosh
# 指定IP与端口进行连接
$ mongosh 127.0.0.1:27017
# 指定用户名和密码连接到指定的MongoDB数据库
$ mongosh 127.0.0.1:27017/admin -u user -p password

查看版本

(1)在linux命令通过mongosh --version查询;

(2)连接上数据库后,通过db.version()查询。

root@5bb1ffddf870:/# mongosh --version 
2.2.6
root@5bb1ffddf870:/# mongosh 
Current Mongosh Log ID:	666e838d14a53264c0a26a12
Connecting to:		mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.2.6
Using MongoDB:		7.0.11
Using Mongosh:		2.2.6

For mongosh info see: https://docs.mongodb.com/mongodb-shell/

test> db.version()
7.0.11
test> 

3.1.2 创建admin管理用户

> use admin
switched to db admin
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
Successfully added user: {
	"user" : "admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}
> 

3.1.3 创建具有读写权限的用户

根据业务需求,创建不用的用户,如下面创建拥有读写权限的用户user:

> db.auth('admin','123456');
1
> db.createUser({ user:'user',pwd:'123456',roles:[ { role:'readWrite', db: 'testdb'}]});
Successfully added user: {
	"user" : "user",
	"roles" : [
		{
			"role" : "readWrite",
			"db" : "testdb"
		}
	]
}
> 

3.1.4 认证并用户并操作

>  db.auth('user','123456')
1
> use testdb
switched to db testdb
> 
> db.person.insert({name:'Larry',age:18})
WriteResult({ "nInserted" : 1 })
> db.person.find({})
{ "_id" : ObjectId("5ddaa14edbbac3c4f844366c"), "name" : "Larry", "age" : 18 }
> 

3.2 两款数据库可视化工具推荐

3.2.1 Robo 3T

官网

创建连接:

1-min.webp

注意下面填的是鉴权数据库,而不是用户的数据库:

2-min.webp

操作界面:

3-min.webp

3.2.2 idea中的数据库插件

idea 右侧Database,点击加号,datasource选择mongodb

连接设置:

注意下面的User Database是该用户下的数据库,写错了会连不上。

注意下面Auth Database为鉴权的数据库,默认为admin

4-min.webp

查询

5-min.webp

0

评论区