当前位置: 首页 > news >正文

Docker - 容器数据卷

Docker - 容器数据卷

什么是容器数据卷

等同于挂载,将容器内的目录地址指向于宿主机文件系统中

在这里插入图片描述

直接使用命令来挂载 -v

docker run -it -v 主机目录:容器内目录# 测试 docker run -it -v /root:/home centos /bin/bash
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker run -it -v /root:/home centos /bin/bash
[root@91fda5ea1cef /]# # 通过命令查看:docker inspect 容器id 是否挂载成功"Mounts": [{"Type": "bind","Source": "/root","Destination": "/home","Mode": "","RW": true,"Propagation": "rprivate"}]# 测试2 将容器停止后修改文件再次启动查看
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker exec -it 容器id /bin/bash

Mysql数据持久化

# 拉取mysql镜像
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker pull mysql:5.7# 运行容器,需要做数据挂载! # 安装启动mysql,需要配置密码的!
# 官方测试:docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag# 测试启动
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker run -d -p 3306:3306 -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:5.7# 开通3306端口
[root@iZ2zeg7mctvft5renx1qvbZ ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent# 重启docker
[root@iZ2zeg7mctvft5renx1qvbZ ~]# systemctl restart docker# 重启mysql容器
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker start 容器id

具名和匿名挂载

# 匿名挂载
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker run -d -P --name nginx01 -v /ect/nginx nginx
e388dde55561cd863b831946d4d4217eedd2d47853ad5bf795b26abd044c37e5
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker volume --helpUsage:  docker volume COMMANDManage volumesCommands:create      Create a volumeinspect     Display detailed information on one or more volumesls          List volumesprune       Remove unused local volumesrm          Remove one or more volumesRun 'docker volume COMMAND --help' for more information on a command.
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker volume ls
DRIVER    VOLUME NAME
local     503b749c6ec21d5c91a8c84b4459f6f900c2f71210943e2558c419b5738f9490
local     b99393a99583fadbd8a7a1438cf94541db1cfe41764f19740a6e823b71bf3ccd
local     f80209292f35958b4f5326d715843b3f11554774b6e616bf90665757125919c8# 具名挂载
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker run -d -P --name nginx -v juming-nginx:/etc/nginx nginx
b0af58763139d2ec61b984938f7a37b24f7fe1490af3e0be05f24499a8ab186f
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker volume ls
DRIVER    VOLUME NAME
local     juming-nginx
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker volume inspect juming-nginx
[{"CreatedAt": "2023-11-10T10:10:05+08:00","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data","Name": "juming-nginx","Options": null,"Scope": "local"}
]
[root@iZ2zeg7mctvft5renx1qvbZ _data]# pwd
/var/lib/docker/volumes/juming-nginx/_data
[root@iZ2zeg7mctvft5renx1qvbZ _data]# ls
conf.d  fastcgi_params  mime.types  modules  nginx.conf  scgi_params  uwsgi_params

如何确认是具名挂载和匿名挂载

-v 容器内路径	    	   # 匿名挂载
-v 卷名:容器内路径		     # 具名挂载
-v /宿主机路径:容器内路径	   # 指定路径挂载

拓展

# 通过 -v 容器路径:ro rw改变读写权限
ro readonly		# 只读
rw readwrite	# 可读可写# 一旦这个设置了容器权限,容器对我们挂载出来的内容就有限定了
docker run -d -P --name nginx -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx -v juming-nginx:/etc/nginx:rw nginx# ro只要看到ro就说明这个路径只能通过宿主机来操作,容器内部是无法操作的!

数据卷容器

  1. 生成镜像
[root@iZ2zeg7mctvft5renx1qvbZ volume]# pwd
/root/volume
[root@iZ2zeg7mctvft5renx1qvbZ volume]# cat yilu
# 创建一个dockerfile文件,名字可以随机 建议 Dockerfile
# 文件中的内容 指令(大写)参数
FROM centosVOLUME ["volume01","volume02"]			# 匿名挂载CMD echo "-----end-----"CMD /bin/bash
[root@iZ2zeg7mctvft5renx1qvbZ volume]# docker build -f /root/volume/yilu -t yilu/centos:1.0 .
[+] Building 0.1s (5/5) FINISHED                                                                                                                          docker:default=> [internal] load build definition from yilu                                                                                                                      0.0s=> => transferring dockerfile: 116B                                                                                                                                0.0s=> [internal] load .dockerignore                                                                                                                                   0.0s=> => transferring context: 2B                                                                                                                                     0.0s=> [internal] load metadata for docker.io/library/centos:latest                                                                                                    0.0s=> [1/1] FROM docker.io/library/centos                                                                                                                             0.0s=> exporting to image                                                                                                                                              0.0s=> => exporting layers                                                                                                                                             0.0s=> => writing image sha256:5f6352c382306e2ddce0a4220b0d7c1ad60a96a2c5a34be60d6025b388eeb778                                                                        0.0s=> => naming to docker.io/yilu/centos:1.0                                                                                                                          0.0s
[root@iZ2zeg7mctvft5renx1qvbZ volume]# docker images
REPOSITORY            TAG       IMAGE ID       CREATED         SIZE
yilu/centos           1.0       5f6352c38230   2 years ago     231MB# 这里的每个命令,就是镜像的一层
  1. 根据镜像生成容器
[root@iZ2zeg7mctvft5renx1qvbZ volume]# docker images
REPOSITORY            TAG       IMAGE ID       CREATED         SIZE
yilu/centos           1.0       5f6352c38230   2 years ago     231MB
[root@iZ2zeg7mctvft5renx1qvbZ volume]# docker run -it 5f6352c38230 /bin/bash
[root@54e430545b09 /]# ls -l
total 0
lrwxrwxrwx   1 root root   7 Nov  3  2020 bin -> usr/bin
drwxr-xr-x   5 root root 360 Nov 10 03:01 dev
drwxr-xr-x   1 root root  66 Nov 10 03:01 etc
drwxr-xr-x   2 root root   6 Nov  3  2020 home
lrwxrwxrwx   1 root root   7 Nov  3  2020 lib -> usr/lib
lrwxrwxrwx   1 root root   9 Nov  3  2020 lib64 -> usr/lib64
drwx------   2 root root   6 Sep 15  2021 lost+found
drwxr-xr-x   2 root root   6 Nov  3  2020 media
drwxr-xr-x   2 root root   6 Nov  3  2020 mnt
drwxr-xr-x   2 root root   6 Nov  3  2020 opt
dr-xr-xr-x 132 root root   0 Nov 10 03:01 proc
dr-xr-x---   2 root root 162 Sep 15  2021 root
drwxr-xr-x  11 root root 163 Sep 15  2021 run
lrwxrwxrwx   1 root root   8 Nov  3  2020 sbin -> usr/sbin
drwxr-xr-x   2 root root   6 Nov  3  2020 srv
dr-xr-xr-x  13 root root   0 Nov 10 03:01 sys
drwxrwxrwt   7 root root 171 Sep 15  2021 tmp
drwxr-xr-x  12 root root 144 Sep 15  2021 usr
drwxr-xr-x  20 root root 262 Sep 15  2021 var
drwxr-xr-x   2 root root   6 Nov 10 03:01 volume01														# 挂载目录
drwxr-xr-x   2 root root   6 Nov 10 03:01 volume02														# 挂载目录# 查看容器信息
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker inspect 795ef6523dd3"Mounts": [{"Type": "volume","Name": "c8f9475c98d8969e43a9850da2a4f7f74283ceea41e2be081ae85b2298a46489","Source": "/var/lib/docker/volumes/c8f9475c98d8969e43a9850da2a4f7f74283ceea41e2be081ae85b2298a46489/_data","Destination": "volume01","Driver": "local","Mode": "","RW": true,"Propagation": ""},{"Type": "volume","Name": "a28b7a6f95e6061df744f4e39ac12a4689f644bd2eb3aff2377a59a5cd161101","Source": "/var/lib/docker/volumes/a28b7a6f95e6061df744f4e39ac12a4689f644bd2eb3aff2377a59a5cd161101/_data","Destination": "volume02","Driver": "local","Mode": "","RW": true,"Propagation": ""}],
  1. 容器之前的绑定

    将容器之前进行卷绑定

# docker run -it --name docker 镜像id
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker run -it --name docker 5f6352c38230
# docker run -it --name docker01 --volumes-from 容器id  镜像id
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker run -it --name docker01 --volumes-from 195c1fc93f87  5f6352c38230
  1. Mysql之间实现容器卷绑定
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker run -d -p 3306:3306 -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:5.7
585993811f7e5d1983c6eeb125f79952e1871bd09c111293a88f7696afecdc75
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
585993811f7e   mysql:5.7   "docker-entrypoint.s…"   47 seconds ago   Up 46 seconds   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql# docker run -d -p 3307:3306 --name mysql01 --volumes-from 容器id -e MYSQL_ROOT_PASSWORD=root 镜像id
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker run -d -p 3307:3306 --name mysql01 --volumes-from 585993811f7e -e MYSQL_ROOT_PASSWORD=root 547b3c3c15a9
f235ad4d0e0cf4a8ac7245fc3362ca174731aefedacd07b036ad83e3649e5e0b

通过上面命令启动两个mysql后发现一个问题点:在第一个Mysql起来后,再拉起另一个mysql时,另一个mysql访问不到。后了一会后第二个mysql会被删除。

通过 docker logs 容器id 命令查看后

[root@iZ2zeg7mctvft5renx1qvbZ data]# docker logs 4eaa9a7c3c50
2023-11-10T05:40:15.936101Z 0 [ERROR] InnoDB: Unable to lock ./ibdata1 error: 11
2023-11-10T05:40:15.936125Z 0 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.
2023-11-10T05:40:16.936231Z 0 [ERROR] InnoDB: Unable to lock ./ibdata1 error: 11
2023-11-10T05:40:16.936257Z 0 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.
2023-11-10T05:40:17.936378Z 0 [ERROR] InnoDB: Unable to lock ./ibdata1 error: 11
2023-11-10T05:40:17.936415Z 0 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.
2023-11-10T05:40:18.936527Z 0 [ERROR] InnoDB: Unable to lock ./ibdata1 error: 11
2023-11-10T05:40:18.936557Z 0 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.
2023-11-10T05:40:18.936563Z 0 [Note] InnoDB: Unable to open the first data file
2023-11-10T05:40:18.936576Z 0 [ERROR] InnoDB: Operating system error number 11 in a file operation.
2023-11-10T05:40:18.936589Z 0 [ERROR] InnoDB: Error number 11 means 'Resource temporarily unavailable'
2023-11-10T05:40:18.936593Z 0 [Note] InnoDB: Some operating system error numbers are described at http://dev.mysql.com/doc/refman/5.7/en/operating-system-error-codes.html
2023-11-10T05:40:18.936596Z 0 [ERROR] InnoDB: Cannot open datafile './ibdata1'
2023-11-10T05:40:18.936614Z 0 [ERROR] InnoDB: Could not open or create the system tablespace. If you tried to add new data files to the system tablespace, and it failed here, you should now edit innodb_data_file_path in my.cnf back to what it was, and remove the new ibdata files InnoDB created in this failed attempt. InnoDB only wrote those files full of zeros, but did not yet use them in any way. But be careful: do not remove old data files which contain your precious data!
2023-11-10T05:40:18.936621Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Cannot open a file
2023-11-10T05:40:19.537157Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2023-11-10T05:40:19.537186Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2023-11-10T05:40:19.537191Z 0 [ERROR] Failed to initialize builtin plugins.
2023-11-10T05:40:19.537194Z 0 [ERROR] Aborting

两个实例使用同一份数据卷,从错误来看innodb数据文件加了锁导致第二个实例无法正常读取。我对于共享数据出现了偏差,认为2个mysql容器共享一个数据卷可以实现2个数据库内容完全一致,但是MySQL并不属于存算分离架构做不到一份数据同时被多个实例使用。

相关文章:

Docker - 容器数据卷

Docker - 容器数据卷 什么是容器数据卷 等同于挂载,将容器内的目录地址指向于宿主机文件系统中 直接使用命令来挂载 -v docker run -it -v 主机目录:容器内目录# 测试 docker run -it -v /root:/home centos /bin/bash [rootiZ2zeg7mctvft5renx1qvbZ ~]# docker …...

YOLOv5独家最新改进《新颖高效AsDDet检测头》VisDrone数据集mAP涨点,即插即用|检测头新颖改进,性能高效涨点

💡本篇内容:YOLOv5独家最新改进《新颖高效AsDDet检测头》VisDrone数据集mAP涨点1.4%,即插即用|检测头新颖改进,性能高效涨点 💡🚀🚀🚀本博客 YOLO系列 + 全新新颖原创高效AsDDet检测头 改进创新点改进源代码改进 适用于 YOLOv5 按步骤操作运行改进后的代码即可…...

第十三章 网络管理实战1

第十三章 网络管理实战1 1osl模型 1.1简介 开发系统互联模型 开放式系统互联 国际标准化组织 ISO 指定定义了不同计算机互联的标准设计和描述 计算机网络通信的框架设计和描述 计算机网络通信的框架 全世界网络通信的工作分为7层 应用层表示层会话层传输层网络层数据链路…...

警惕!.360、.halo病毒来袭,这些建议能让你的数据安如泰山!

导言: 嘿,亲爱的读者们,今天91数据恢复讨论一个挑战性极高的问题——.halo、.360病毒,这可是个十足的恶棍,专门对你珍贵的数据下黑手!别怕,我这就告诉你怎么防患于未然,还有被它拐走…...

ubuntu使用快照部署polygon全节点

文章目录 一、 环境部署1.1 golang环境部署1.2 git安装1.3 gcc安装1.4 zstd 安装1.5 pv 安装1.6 aria2c 安装二、安装 polygon2.1 heimdall 安装2.1.1 heimdall 编译2.1.2 初始化 heimdall2.1.3 修改配置文件2.2 bor 安装2.2.1 bor 编译2.2.2 创建bor数据目录2.2.3 修改配置文件…...

理解快速排序

理解快速排序 首先了解以下快速排序 快速排序(QuickSort)是一种常用的排序算法,属于比较排序算法的一种。它是由英国计算机科学家Tony Hoare于1960年提出的,是一种分而治之(divide and conquer)的算法。 …...

初始MySQL(三)(合计函数,分组函数,字符串相关函数,数字相关函数,时间日期函数,加密函数,流程控制函数)

目录 合计/统计函数 count 返回行的总数 sum 合计函数 - avg group by 字符串相关函数 数学相关函数 时间日期相关函数 加密函数 流程控制函数 合计/统计函数 count 返回行的总数 Select count(*) | count (列名) from tablename [WHERE where_definition] #演…...

AI系统ChatGPT源码+详细搭建部署教程+AI绘画系统+支持GPT4.0+Midjourney绘画+已支持OpenAI GPT全模型+国内AI全模型

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…...

程序员语录:一个真正有本事的人,往往有哪些特征呢?

目录 不要畏手畏脚,大胆去就是了 敢于拥抱成功,别怕抛头露面,别怕出丑丢人 永远不抱怨 凡事从利益的角度,摒弃情感(感情除外) 永远积极主动 人和人就是利益关系或者情绪价值 不在烂事上纠缠&#xf…...

做一个Springboot文章分类模块

目录 文章分类 1、新增文章分类 前言 代码编写 测试 2、 文章分类列表 前言 代码编写 测试 3、获取文章列表详情 前言 代码实现 测试 4、更新文章分类 前言 代码实现 测试 5、删除文章分类 前言 代码实现 测试 分页查询 文章列表条件分页 前言 代码编…...

MTK手机平台充电原理

EPT GPIO初始化文件 bsp_gpio_ept_config.c 1 知识点总结 1.1 Official 参考充电电路 Figure 1-1 参考电路 VCHG:USB正极 VCDT:VCHG Charger Detect充电电压检测脚 ISENSE:充电电流检测电阻的正极 BATSNS:充电电流检测电阻的负极 …...

产品化的GPT,能否为“百模大战”照亮未来?

这两天,AI圈都处在一种莫名的震撼感当中。 北京时间 11月7日,OpenAI 举办了首次DevDay开发者日活动。活动现场发布了非常多内容,其中有一些按部就班的,比如技术上更新了最新版本的GPT-4 Turbo。也有一些让从业者目瞪口呆&#xff…...

【中间件篇-Redis缓存数据库03】Redis高级特性和应用(发布 订阅、Stream)

Redis高级特性和应用(发布 订阅、Stream) 发布和订阅 Redis提供了基于“发布/订阅”模式的消息机制,此种模式下,消息发布者和订阅者不进行直接通信,发布者客户端向指定的频道( channel)发布消息,订阅该频道的每个客户端都可以收到该消息。 …...

Verilog基础:三段式状态机与输出寄存

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html 对于Verilog HDL而言,有限状态机(FSM)是一种重要而强大的模块,常见的有限状态机书写方式可以分为一段式,二段式和三段式,笔者强烈建议使用三…...

抖音商城双11好物节,从供需两侧重新定义“好货”

【潮汐商业评论/原创】 你用的第一款护肤品是什么? 大部分人回忆起童年的时候,想起来的都是那款有着牛奶香味的、塑料包装的小袋白色乳霜——郁美净儿童霜。 但是不知何时,它逐渐淡出了很多人、特别是年轻人的视野,直到今年在互…...

Mysql Explain工具介绍

使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析查询语句或是结构的性能瓶颈。 准备表 -- 课程表 CREATE TABLE class (id int(11) NOT NULL,name varchar(45) DEFAULT NULL,update_time datetime DEFAULT NULL,PRIMARY KEY (id)) ENGINEInnoDB DEFAULT CHARSET…...

Linux系统中的静态库和共享库,以及一些计算机的基础知识

目录 1.库文件 2.静态库 3.共享库 4.静态库与共享库的区别 5.计算机基础知识 6.进程的基础知识 7.主函数的三个参数 1.库文件 1).库文件库是一组预先编译好的方法的集合;Linux系统存储库的位置一般在/lib 和 /usr/lib (64位系统/usr/lib64)库的头文件放在/usr/include 2…...

商品管理图片更换实现

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.java1234.mapper.ProductMa…...

SDL2 加载图片

1.简介 在SDL中&#xff0c;本身只支持加载BMP格式的图片SDL_LoadBMP&#xff0c;如果想要加载别的格式图片&#xff0c;需要编译SDL_image库。 SDL_image库中IMG_Load和都是IMG_LoadTexture用于加载图片的函数&#xff0c;但是它们的使用方式和返回值有所不同。 IMG_Load和…...

监控和数据采集软件架构和详细设计

介绍 监控和数据采集软件通过提供实时监控、数据收集和分析功能&#xff0c;在各个行业中发挥着至关重要的作用。这些软件应用程序可帮助企业收集有价值的见解、优化流程并做出明智的决策。在本文中&#xff0c;我们将探讨监测和数据采集软件的软件架构、编程技术和详细设计规范…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制

目录 节点的功能承载层&#xff08;GATT/Adv&#xff09;局限性&#xff1a; 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能&#xff0c;如 Configuration …...

学习一下用鸿蒙​​DevEco Studio HarmonyOS5实现百度地图

在鸿蒙&#xff08;HarmonyOS5&#xff09;中集成百度地图&#xff0c;可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API&#xff0c;可以构建跨设备的定位、导航和地图展示功能。 ​​1. 鸿蒙环境准备​​ ​​开发工具​​&#xff1a;下载安装 ​​De…...